PHP.net
Dutch PHP Conference 2013
7PHP.com: Zend Certifications Tips & Tricks - Hear It From Zend Certified Engineer Eric Hogue
On 7PHP.com there's a new post that interviews a PHP community member, Eric Hogue, about his experience with the Zend Certified Engineer exam.
This is the 3rd set of Zend Certification Tips and Advice to help anyone taking either of the two Zend Exams powered by Zend Technologies: the Zend PHP Certification Exam and/or the Zend Framework Certification Exam. The aim being to help people who want to sit for those exams and inform them what it is all about & what to expect by hearing it from (pro) PHP Guys who have already been through it, that is => Hear It From Zend Certified Engineers!He starts off with some general questions to Eric about the exam and its structure and how he prepared himself for it. He mentions some of the resources he used to study and what kind of topics to pay attention to. There's also a few quotes included at the end giving another perspective on the exam (specifically, some frustrations).
Link: http://7php.com/zend-certification-advice-eric-hoguePHPMaster.com: Consuming Feeds with SimplePie
In a recent post to PHPMaster.com Kevin Mowry shows you how to use SimplePie, a simple to use programatic feed reader you can use to parse things like RSS feeds.
If you're an avid feed consumer like I am, you might be a bit sad to see Google's recent announcement of Reader reaching end of life. Reader was simple and easy to use, but there's no reason you can't have the same functionality with your own homegrown project. The PHP library SimplePie allows for quick and easy feed consumption and display. Here's how you can get started on your own feed reader.He helps you get it installed (via Composer) and shows you how to use some of its most basic functionality to parse the New York Times' feed. He also includes examples of getting the information back out of the SimplePie object. There's also some snippets that show how to only get the latest items and how to cache the results.
Link: http://phpmaster.com/consuming-feeds-with-simplepieDZone.com: Trying out PHP Refactoring Browser
On DZone.com Giorgio Sironi has written up a post about some testing he's done with the ""PHP Refactoring Browser" (more on that here) on some basic code examples.
IDE proponents love, in fact, an Integrated Development Environment that provides all the functionalities you need while writing and editing code; the followers of the Unix way typically write code in Vim while augmenting it via plugins where feasible and leveraging external tools that do one thing, and do it well. [...] Automated refactorings in PHP were out of the league of Vim and Unix users; thanks to Qafoo, however, a new open source tool is able to edit code with predefined refactoring recipes: PHP Refactoring Browser.He goes through some of the basic features and functionality of the browser, setting expectations a bit. He shows how to get it installed (via Composer) and the results of some of his testing. Rather than including them all in the post, he opted to make actual commits on github of the changes.
Link: http://css.dzone.com/articles/trying-out-php-refactoringPHP Town Hall Podcast: Episode #6 - PSR-X and the Mexican Standoff
The PHP Town Hall podcast has released the latest episode of their show - Episode #6, "PSR-X and the Mexican Standoff".
PHP-FIG member Paul M. Jones and PHP contributor Anthony Ferrera come on the podcast with Ben, Phil and regular guest Zack Kitzmiller to discuss the new Package Orientated Autoloader Proposal (a.k.a PSR-X), and wether or not PSR's should ever be amended.[...] Nobody wins, but the argument brings up a lot of interesting topics and points of view, and that is mostly what we are here for.You can listen to this latest episode either through the in-page player by downloading the mp3 or by subscribing to their feed. The post also contains links to several of the groups and technologies mentioned in the episode.
Link: http://phptownhall.com/blog/2013/04/19/episode-6-psr-x-and-the-mexican-standoffCommunity News: Latest Releases from PHPClasses.org
- Page File
Package:Summary:Generate pages and save to filesGroups:Author:Description:This class can Generate pages and save to files...
Read more at http://www.phpclasses.org/package/8002-PHP-Generate-pages-and-save-to-files.html
- PHP Collections Framework
Package:Summary:Manipulate collections of objects like Java and C#Groups:Author:Description:This package can be used to manipulate collections of objects like Java and C#...
Read more at http://www.phpclasses.org/package/8008-PHP-Manipulate-collections-of-objects-like-Java-and-C-.html
- QdbQuery
Package:Summary:Query MySQL databases using parametersGroups:Author:Description:This class can query MySQL databases using parameters...
Read more at http://www.phpclasses.org/package/8011-PHP-Query-MySQL-databases-using-parameters.html
- MySQL Database usage
Package:Summary:Query MySQL database tablesGroups:Author:Description:This class can query MySQL database tables...
Read more at http://www.phpclasses.org/package/8009-PHP-Query-MySQL-database-tables.html
- PHP Compare Objects
Package:Summary:Compare objects using reflectionGroups:Author:Description:This class can compare objects using reflection...
Read more at http://www.phpclasses.org/package/8012-PHP-Compare-objects-using-reflection.html
- PHP Curl Parallel Requests
Package:Summary:Send multiple HTTP parallel requests with CurlGroups:Author:Description:This class can send multiple HTTP parallel requests with the Curl extension...
Read more at http://www.phpclasses.org/package/8014-PHP-Send-multiple-HTTP-parallel-requests-with-Curl.html
- wURI
Package:Summary:Parse an URL and extract its partsGroups:Author:Description:This class can parse an URL and extract its parts...
Read more at http://www.phpclasses.org/package/8005-PHP-Parse-an-URL-and-extract-its-parts.html
- PHP Reduce JSON
Package:Summary:Compress JSON data using the reduced JSON formatGroups:Author:Description:This class can compress and decompress JSON data using the reduced JSON format...
Read more at http://www.phpclasses.org/package/8007-PHP-Compress-JSON-data-using-the-reduced-JSON-format.html
- File Reader
Package:Summary:Read and search text filesGroups:Author:Description:This class can read and search text files...
Read more at http://www.phpclasses.org/package/8006-PHP-Read-and-search-text-files.html
Tom Butler: PHP: PSR-0: Pretty Shortsighted, Really
In a new post to his site Tom Butler gives some reasoning as to why he thinks PSR-0 is shortsighted and some examples of a possible better alternative.
A little background for those unaware of what PSR-0 is: There's a self-declared PHP "standards" group called PHP-FIG attempting to push several "standards" throughout the PHP community. [...] I have little interest in debating the politics behind pushing standards or whether small groups of developers trying to make decisions that affect the entire community is good or not, but I do object to the PSR-0 standard itself. My issues are purely practical, PSR-0 reduces flexibility and makes life more difficult for developersWhile he likes the idea of a standard way to be able to include third-party libraries that can be reused in multiple systems, he suggests that it answers the wrong question. In his view, it should be up to the library/tool developers to ensure the structure of their code to work with a standard, not the other way around. He points out that a "standard" is something that should apply to all situations and some of the workarounds that are needed for PSR-0 negate this idea.
In his alternative method, he suggests an "Autloadable" interface that can be implemented by the library/tool that includes a "load" method to handle the actual class loading. Then this autoloader would be registered via a json configuration file for the package. This allows the developer to control the loading and place any exceptions they might need into their own logic instead of trying to work around possible issues with the PSR-0 loading scheme.
PSR-0 is a bad solution to a good problem. If you take anything from reading this post, remember this: If the standard defined how autoloaders could be extended, rather than how autoloaders worked, then each library or vendor could provide its own extension to the autoloader and everyone would be happy. Link: http://r.je/php-psr-0-pretty-shortsighted-really.htmlReddit.com: Dependency injection in ZF2 and Symfony 2 are service locators
On Reddit's PHP section there's a discussion happening about dependency injection versus service locators in two popular PHP frameworks - Zend Framework 2 and Symfony 2 (and how they're not really DI at all).
Both ZF2 and Symfony 2 offer the same behavior: if I'm in a controller, and I want to use a service, I have to get it from the container with $this->get('my_service'). As such, the controller is not using DI, this is the service locator pattern. Controllers become more difficult to tests because of that, and they depend on the container now. I wonder why both frameworks didn't go further: why not treat controllers like services and use dependency injection on them. In other words: if a controller needs a service "A", then it should get it in the constructor, or through setter/property injection.The comments talk some about the "controller from the DI container" idea, some other ways around the problem and some clarification as to what the frameworks are actually doing related to the container injection.
Link: http://www.reddit.com/r/PHP/comments/1caidn/dependency_injection_in_zf2_and_symfony_2_areExtending Twig Templates: Inheritance, Filters, and Functions
On PHPMaster.com today there's a new tutorial for the Twig templating users out there showing you how to extend your templates via inheritance, filters and functions - all abilities already built in to the tool.
When working within an MVC architecture, it's common to use a template library to populate the dynamic content of our views. There are dozens of such libraries available for PHP, but Twig is one of the standouts because of the ability to extend core features with custom implementations. In this article we'll explore how Twig templates can be extended using template inheritance, filters, and functions.He starts first with some of the common limitations of templating frameworks (extension) and how Twig gets around this. He shows the use of the "extends" keyword and the "block"/"endblock" for splitting up the page into reusable chunks. He also shows how to use filters and functions in your Twig tags, allowing for more customized content and functionality for your output.
Link: http://phpmaster.com/extending-twig-templates-inheritance-filters-and-functions/Automated backups to Google Drive with PHP API
On his site Lukasz Kujawa has posted a new tutorial showing you how to perform automated backups to Google Drive of files through their API (using his own library).
Where do you keep backups? I guess that depends on what do you backup. You might have a very clever answer for a business critical data but what about less important content? The best example would be a private blog. It will hurt if you lose your data but the odds are you're not willing to pay for any reliable storage. [...] There is one reliable storage, which is 100% free and almost everybody have access to it. Yes, I'm talking about Google Drive.He walks you through the process of setting up your Google Drive account API access and where to find the data you'll need to make the connection. He then links over to his project that makes the backup a simple few lines of code (mostly configuration) of a backup path of your choice out to the remote Google Drive account.
Link: http://systemsarchitect.net/automated-backups-to-google-drive-with-php-apiMatt Setter: How Simplicity Leads to Greater: Productivity, Quality & Satisfaction
Matt Setter has a quick new post that suggests a way you can get more done with less work - simplicity.
Though we can do so many things simultaneously - should we? Does it actually reduce effectiveness and productivity which are the antithesis of professional application development? [...] I had the thought, as is common in a western-based mentality, that to be busy, to be industrious, to try and multi-task a series of independent tasks and projects simultaneously was the right thing to do. It's meant to be a simple formula: "Greater productivity = Greater self-worth right?" Sounds almost like Thatcherism. I felt that this was not only right, but the sign of an intelligent and sophisticated developer, who truly had honed his craft. Perhaps you've felt the same at one time or another?He points out that, while it's very easy for developers to fall into this trap and way of thinking, it's not sustainable. It leads to stress, bad code and even - possibly - an even higher bug count. Instead he suggests the good standby idea of "KISS" (essentially, simplicity).
Instead of trying to do everything at once - I stopped and decided to only do one thing at once. And that one thing, had my full attention and focus. When it was done, I then moved on to the next one. Not before and not after.He includes some of his own experience trying to apply this in a Zend Framework 2 application.
Link: http://www.maltblue.com/software-engineering-2/how-simplicity-leads-to-greater-productivity-quality-and-satisfactionCommunity News: Packagist Latest Releases for 04.16.2013
- fresque/fresque (1.1.5)
A command line tool to manage your php-resque workers
- phundament/p3pages (0.10.4)
Page Manager
- rhumsaa/uuid (2.1.0)
A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
- piwik/piwik (1.12-b10)
Open Source Real Time Web Analytics Platform
- devhelp/calendar (1.0.4)
- campaignmonitor/createsend-php (v3.1.0)
A php library which implements the complete functionality of the Campaign Monitor API.
- sail/useragent (1.0.0)
Library to detect the browser and all its info (OS, Platform, ...)
- imbo/imbo-zf2 (1.1.0)
Imbo module for Zend Framework 2
- satooshi/php-coveralls (0.1.0)
PHP Coveralls
- mparaiso/routeconfigserviceprovider (v0.0.8)
Route config file support for Silex framework
- z_bodya/yii-image (1.0.0)
Port of Kohana Image Library to Yii
- z_bodya/yii-tinymce (1.0.0)
Extension to use TinyMce with Compressor, SpellChecker and FileManager
- z_bodya/yii-gallery-manager (1.0.0)
Extension for yii, that allows to manage image galleries
- z_bodya/yii-elfinder (1.0.0)
Extension to use elFinder 1.x file manager in yii application
- z_bodya/yii-datetimepicker (1.0.0)
Datetime picker input widget
- nelmio/alice (1.4.0)
Expressive fixtures generator
- z_bodya/yii-coordinatepicker (1.0.0)
Widget to pick coordinates using google map in modal window
- z_bodya/yii-chosen (1.0.0)
Anouther chosen extension, provides easy to use InputWidget
- orno/di (v1.1.4, v1.1.3, v1.1.2, v1.1.1)
Orno Di is a small but powerful dependency injection container with automatic resolution of dependencies.
- uestla/twigrid (0.9.1)
Experimental DataGrid for Nette Framework
- cakedc/migrations (2.2.1)
Migrations Plugin for CakePHP
- lexik/translation-bundle (v1.4.1)
This bundle allow to import translation files content into the database and provide a GUI to edit translations.
- rampage-php/framework (1.0.0-alpha1)
Rampage PHP Framework based on Zend Framework 2
- rampage-php/composer-module-installer (1.0.0)
Composer installer for rampage-php framework modules
- brainbits/transcoder (1.1.1)
Library for encoding, decoding transcoding data.
- bear/resource (0.7.5)
RESTful service layer framework
- hwi/oauth-bundle (0.2.2)
Support for authenticating users via oauth in Symfony2.
- widget/widget (0.9.2-beta)
A new way to write PHP
- lcobucci/action-mapper (1.0.0alpha7)
Front controller framework for PHP 5.3+ applications
- lcobucci/di-builder (1.0.0)
Dependency Injection Builder for PHP 5.3+ applications
- br/signed-request-bundle (0.3)
Symfony2 Bundle that provides request and response signing
- bluedogtraining/guzzle-eway (v2.1.1)
A Guzzle client for interacting with the Eway Direct Transactions API
Community News: Latest PECL Releases for 04.16.2013
- pcsc 0.2
Fixed compile error on >= PHP5.4 and added w32 support
- couchbase 1.1.4
- Prototype trying to get the thing working for PECL
- Reset the error code between each request of a persistent connection
- Report libcouchbase version in phpinfo
- Remove gettimeofday implementation for win32
- PCBC-206: Prototype for configuration caching
- Fixup memory allocation for URL path
- PCBC-186: Add method to list all design docs
- PCBC-178: Add support for connection_timeout
- Update GetReplica test
- PCBC-218: Detect invalid characters in CAS
- Add bucket manipulation example
- PCBC-172: Add design document examples
- PCBC-191 Don't coredump for invalid argument
- Update the list of supported PHP versions
- mongo 1.3.7
** Bug
* [PHP-700] - 'MongoCursorException' with message '127.0.0.1:27017: request/cursor mismatch
Dayle Rees: Composer primer
For those that might have heard about the Composer package management system for PHP but haven't had the time to get into it, you should definitely check out this great primer from Dayle Rees.
Composer is something special in the world of PHP. It has changed the way we handle application dependencies, and quelled the tears of many PHP developers. You see, in the olden days, when you wanted to build an application that relied on third party dependencies you would have to install them with PEAR or PECL. These two dependency managers both have a very limited set of outdated dependencies and have been a thorn in the side of PHP developers for a long time. [...] Enter composer, king of the package managers.He jumps right in and gets into the configuration (the composer.json file) and using it to describe the package. He shows how to set up "required" resources complete with version number information. There's a bit about setting up autoloading and classmaps too. He then moves on to getting the tool installed and using the composer.json definition to load in needed packages (and development ones if needed).
Link: http://daylerees.com/composer-primer7PHP.com: Interview with Manuel Lemos - Founder of PHPClasses.org
On 7PHP.com today they've posted the latest PHP community interview - this time with Manuel Lemos of the PHPClasses site.
In this edition I talked with Manuel Lemos who is the founder of the famous and huge PHPClasses.org. @ManuelLemos has been rambling a lot about PHP, doing all sorts of stuffs on phpclasses back since 1999 - podcasts, interviews, sharing scripts, writing scripts, blogging, shouting and I even doubt he drinks-eats-sleeps there too (just to say how much he is hooked in there).In the interview he answers questions about:
- His background and how he got started with PHP
- What he sees as the good and bad parts of the language
- Some suggestions for developers wanting to learn
- What frameworks/unit testing tool and CMS he recommends
There's also a section more specifically focused on the Brazilian PHP community, PHP conferences and some of the things he's learned in his time in the wider PHP community.
Link: http://7php.com/php-interview-manuel-lemosFabien Potencier: About Symfony: Stability over Features
Fabien Potencier (of the Symfony framework) has a new post to his site talking about a philosophy that the Symfony framework community should work towards, providing stability over features.
Long story short: in the coming months, the Symfony core contributors should focus their efforts toward stabilizing the existing features instead of working on new ones. At this point, backward compatibility and stability are more important than everything else.He highlights some of the points that come along with this effort including less refactoring for the sake of refactoring, fixing more bugs/edge cases and writing more tests/documentation. He gets into some of the specifics of this kind of thinking and points out the things that can and can't be changed during this time. He talks more about stability and suggests that not only can it help enhance performance but it could also help motivate more projects/corporate users to start using the framework.
Link: http://fabien.potencier.org/article/68/about-symfony-stability-over-featuresSitePoint.com: What Happened when we Talked PHP with the Experts
On SitePoint.com today they've posted the transcript of a "Talk with the Experts" session they did with Lorna Mitchell (instructor of their recent OOP sessions). The transcript includes questions and answers to those in attendance as well as some good links and advice.
Last Thursday I broke with tradition slightly and ran a Talk with the Experts session in the evening (down under), making it a bit more time-zone friendly for our UK audience. It also meant that I was able to swap my usual coffee for a wine, which probably made the session run a bit more smoothly. The subject was PHP and our expert was Lorna Mitchell, tutor of Object-oriented PHP and co-author of PHP Master: Write Cutting-edge Code.The transcript starts with a collection of some of the links provided during the discussion and then runs through the entire conversation. There's some good advice in there, especially if you're relatively new to the world of PHP object-oriented programming.
Link: http://www.sitepoint.com/what-happened-when-we-talked-php-with-the-expertsCommunity News: Packagist Latest Releases for 04.15.2013
- herrera-io/wise (1.1.2, 1.1.1)
Symfony Config for everyone else.
- instinct/types-autoboxing (v1.0.0-BETA1)
Wrapping primitive types into objects automatically
- kamisama/cake-resque (3.3.1)
A CakePHP plugin for creating background jobs with Resque
- fresque/fresque (1.1.3)
A command line tool to manage your php-resque workers
- kamisama/php-resque-ex (1.2.4)
Redis backed library for creating background jobs and processing them later. PHP port based on resque for Ruby.
- titon/test (0.7.0)
The Titon test package provides classes and fixtures used for test cases. This should not be used in production.
- mobiledetect/mobiledetectlib (2.6.0)
Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
- blake/symfony-extensions (v1.0)
Provides some extra goodies to the base controller class and Doctrine entities in Symfony 2.
- lyrixx/lifestream-silex-provider (1.0.0)
Silex prodivder for lyrixx/lifestream
- mjohnson/transit (1.1.0)
A file uploader, validator, importer and transformer library.
- taluu/link-tpl (1.14.0)
Templating Engine for PHP
- cgm/config-admin (1.2.1)
ZF2 module for easy administration of application settings
- fg/essence (1.4.0)
Extracts informations about medias on the web, like youtube videos, twitter statuses or blog articles.
- webcodr/collection (2.1.2, 2.1.1)
Collection library for PHP
- webcodr/mango (0.6.13, 0.6.12, 0.6.11, 0.6.10)
A MongoDB object document mapper for PHP
- bear/package (0.6.6)
BEAR.Sunday application package
- devhelp/calendar (1.0.3)
- tui/session-bundle (1.0.1, 1.0.0)
Adds a session expiry listener
- toddish/verify (v1.1.1)
A simple authentication bundle for Laravel 4. It features roles, permissions, password salting and is fully extendable.
- simplon/helper (0.5.5)
General helpers which come-in helpful.
- matthimatiker/molcomponents (1.4.5-beta1)
Library with use-at-will architecture that extends the functionality of Zend Framework 1. Main features: Improved bootstrapping with lazy loading of resources, declaration of request parameters as argument in controller actions, advanced form creation and validation, mail templates, lightweight controller testing.
- n98/magerun (1.62.1, 1.62.0)
Tools for managing Magento projects and installations
- craue/formflow-bundle (1.1.1)
Multi-step forms for your Symfony2 project.
- intervention/image (1.3.8)
Image handling and manipulation library with support for Laravel 4 integration
- mparaiso/routeconfigserviceprovider (v0.0.6, v0.0.7, v0.0.5)
Route config file support for Silex framework
Community News: Latest PEAR Releases for 04.15.2013
Community News: Packagist Latest Releases for 04.14.2013
- components/backbone (1.0.0)
Give your JS App some Backbone with Models, Views, Collections, and Events.
- titon/route (0.4.0, 0.3.0)
The Titon route package adds support for dynamic route handling and mapping.
- titon/test (0.6.0, 0.5.0, 0.4.0, 0.3.0)
The Titon test package provides classes and fixtures used for test cases. This should not be used in production.
- titon/io (0.4.0)
The Titon IO package provides classes that handle file manipulation and resource bundling.
- titon/common (0.7.0)
The Titon common package provides global functionality like class traits and augmentation as well as dependency and configuration management.
- titon/g11n (0.6.0, 0.5.0)
The Titon g11n package handles the localization and internationalization of your application.
- titon/environment (0.7.0, 0.6.0)
The Titon environment package provides multiple environment configuration and bootstrapping support.
- camspiers/statistical-classifier (0.5.3)
A PHP implementation of Complement Naive Bayes and SVM statistical classifiers, including a structure for building other classifier, multiple data sources and multiple caching backends
- behat/mink-zombie-driver (v1.1.0, v1.0.4)
Zombie.js driver for Mink framework
- behat/mink-selenium2-driver (v1.1.0, v1.0.6)
Selenium2 (WebDriver) driver for Mink framework
- behat/mink-selenium-driver (v1.1.0)
Selenium driver for Mink framework
- behat/mink-sahi-driver (v1.1.0)
Sahi.JS driver for Mink framework
- behat/mink-browserkit-driver (v1.1.0, v1.0.5)
Symfony2 BrowserKit driver for Mink framework
- behat/mink (v1.5.0)
Web acceptance testing framework for PHP 5.3
- behat/mink-goutte-driver (v1.0.8)
Goutte driver for Mink framework
- webcodr/mango (0.6.9, 0.6.8, 0.6.7, 0.6.6)
A MongoDB object document mapper for PHP
- stamina/chequer-php (0.2)
Fast & simple scalar/object/array checking/validation class
- mjohnson/decoda (6.0.1)
A lightweight lexical string parser for BBCode styled markup.
- shuble/slurpy (1.0.0)
php wrapper for pdftk commandline tool, and pdf form filler
- bitexpert/web-asset-installer (0.2.1, 0.2.0, 0.1.0)
Web Asset Installer
- kamisama/cake-resque (3.3.0)
A CakePHP plugin for creating background jobs with Resque
- polidog/quick-dns (0.0.3)
PHP DNS Server
- simplon/task (0.5.4)
Create and run console tasks.
- kdyby/translation (v0.9.5)
Integration of Symfony/Translation into Nette Framework
- jan-swiecki/simple-annotations (0.1.8, 0.1.7)
Simple annotation parser
- maxnuf/maxnuf-smarty (v0.1)
Zend Framework 2 Module that provides a Smarty rendering strategy and functions and modifiers to render actions from your templates
- endroid/qrcode (1.1.2)
Endroid QR Code
- simplon/helper (0.5.4)
General helpers which come-in helpful.
- oneup/uploader-bundle (v0.9.3)
Handle multi file uploads. Features included: Chunked upload, Orphans management, Gaufrette support.
- soflomo/mail (v0.1.0)
Small module to help with mail transport aware classes
- bento/bento (0.4.2)
Simple micro-framework
- titon/http (0.5.0)
The Titon HTTP package provides classes for interacting with sessions, cookies and the request and response.
- titon/debug (0.3.0)
The Titon debug package provides low-level debugging and error handling.
- titon/type (0.6.0)
The Titon type package provides class like structure and advanced functionality for arrays, strings, objects and enums.