PHP Community
Aura: New Site, New Logo, New Releases
Web & PHP Magazine: May 2013 Issue - "Time Travel"
The Web & PHP Magazine has officially released their latest issue - the May 2013 edition, "Time Travel".
You may already be familiar with Git, but did you know that it can rewrite time itself? GitHubber Ben Straub explains all in this month's issue, which also features tutorials on extracting XML data from RSS, using Composer to manage project dependencies and using the PHP Content Repository. If you've ever thought about starting a PHP user group, Atlanta PHP User Group co-organiser Kevin Roberts shares his secrets - plus, there's our regular columns on agile, big data and testing.Articles included in this latest issue include:
- "Change the Past" (Ben Straub)
- "Why do User Groups?" (Kevin Roberts)
- "Sprint Retrospective Primer" (Steffan Surdek)
- "Urban Legends and Error Handling" (Stefan Priebsch)
- "Managing your project's dependencies with Composer" (Jefersson Nathan de O. Chaves)
As always, this issue is available free of charge and can be downloaded directly from their site.
Link: http://webandphp.com/May2013PHPMaster.com: Maven and PHP
PHPMaster.com has a new tutorial posted that introduces you to a build tool that's more common in the Java world but can easily support PHP projects, Apache's Maven.
Apache Maven is a build automation tool with the purpose of building, reporting, and creating documentation of projects. It builds projects using a Project Object Model (POM) and a set of plugins shared by all projects using Maven, thus providing a uniform build system. Once you familiarize yourself with how one Maven project builds, you automatically know how all Maven projects build. [...] Through this article you will gain familiarity with Maven for PHP, and how to install and use the PHP-Maven plugin from the command line and in Eclipse.The tutorial walks you first through the basic install of Maven and get you started with an example "settings.xml" file helping to set up the PHP-Maven plugin. They help you create your first project using the Archetype plugin and its related "pom.xml" file. The project already has a defined structure (similar to what you might see in a Composer-loadable PHP repo on Github) for the source of your app and the tests. They show you how to hook in PHPUnit and phpDocumentor for testing/dcumentation builds and, finally, how to integrate it all into Eclipse to allow for easier, in-IDE interactions.
Link: http://phpmaster.com/maven-and-phpScript-Tutorials.com: Functional Programming - How to Write Functional Code in PHP
On the Script-Tutorial.com site today there's a new post looking at functional programming in PHP - some of the concepts involved and example code showing how to make it work.
Functional programming can be defined in simple terms as a programming paradigm that do not change the state of a program instead it uses pure functions. A pure function is a function that has the ability to accept a value and return another value without changing the input supplied to it. It is characterized by its ability to support functions that are of high order. [...] A programming paradigm that is functional has the following attributes: do not alter the states which make parallelism easier, deals mostly with a function which is the smallest unit hence enhances readability of code, has deterministic functions that enable stability of a program.He talks some about anonymous/lambda functions (closures) and their role in PHP's implementation of functional programming. He also talks some about partial functions, currying, higher order functions and recursion. He finishes off the article with a look at some of the advantages this method of development can bring as well as some of the disadvantages that come with things like recursion and the learning curve of the method.
Link: http://www.script-tutorials.com/functional-programming-phpPHP.net: PHP 5.5.0RC1 is available
As is mentioned on PHP.net today, the first release candidate for the PHP 5.5.x series, PHP 5.5.0RC1, has been released for testing:
The PHP development team announces the availability of the first release candidate of PHP 5.5. This release fixes some bugs as well as some possible leaks from our last beta. This is a development preview - do not use it in production!Some of the more major changes in this release include an update to the FPM SAPI for QUERY_STRING, a fix for a build issue with libgd, bugs in SNMP and a problem with stream_select on Windows x64 systems. You can find the full list of changes in the NEWS file. Please download and test (Windows binaries here) this latest release to help the development team find issues and move along with the PHP 5.5.x releases.
Link: http://php.net/index.php#id2013-05-09-2PHPClasses.org: Lately in PHP, Episode 35 - Better Documentation for PHP internals
On PHPClasses.org today they've posted the latest episode of their "Lately in PHP" podcast series - Episode #35, "Better Documentation for PHP internals".
With the inclusion of Zend Optimizer+ extension in PHP 5.5, the need for better documentation of PHP internals became more evident, so PHP contributors can write extensions that take the most of the core PHP features. That is one of the topics discussed by Manuel Lemos and Ernani Joppert in the episode 35 of the Lately In PHP podcast. They also talked about having more optimized PHP opcodes, some interesting PHP feature proposals that got rejected, as well the article about the top version control systems used by PHP developers.You can listen to this episode in a few different ways - either through the in-page player, by downloading the mp3 or by watching the video of the recorded Google Hangout session.
Link: http://www.phpclasses.org/blog/post/207-Better-Documentation-for-PHP-internals--Lately-in-PHP-podcast-episode-35.htmlCommunity News: Packagist Latest Releases for 05.09.2013
- rgou/bootstrap-bundle (v0.7.1, v0.7.0, v0.6.1, v0.6.0)
Twitter Boostrap Bundle for Symfony 2
- league/oauth2server (2.0.2, 2.0)
A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.
- codeception/codeception (1.6.1)
BDD-style testing framework
- jtgrimes/less4laravel (v0.1.4, 0.1.4)
Bringing lessphp into Laravel
- khal3d/phpline (v0.1)
Execute command line using php
- pihi/industrial (0.4.1)
Dependency Injection for PHP 5.3
- manhim/cervo (2.2.0, 2.1.1)
A lightweight and highly modular structure framework for PHP.
- rah/rah_terminal_markdown (0.1.3)
Markdown module for rah_terminal
- leedavis81/altr-ego (v1.0.0)
Access an objects protected / private properties and methods
- rah/rah_autoload (0.1.0)
Loads the autoload file Composer generated in Textpattern CMS
- jadeit/catalogd-bundle (0.1)
A Bundle defining Items, Categories and Tags
- herrera-io/yaml-hint (1.0.0)
A code hint file for the YAML extension.
- ncsuwebdev/base-otf-app (1.0.3)
Base app for creating an OTF app
- instaclick/gherkincs (v1.0.0)
Code Sniffer and Semantic Analyzer for Gherkin
- ncsuwebdev/otframework (3.0.3)
Base application framework
- ncsuwebdev/ncsubootstrap (1.0.2)
An NCSU-brand override for Twitter Bootstrap
- brtriver/dbup (v0.4)
simple migration tool with PDO
- affinitydev/auth (0.1.0)
Decoupled, interface-based Authentication component for PHP 5.4.
- mparaiso/doctrineodmserviceprovider (0.0.3, 0.0.2, 0.0.1)
Doctrine ODM service provider for Silex
- diff/diff (0.6)
Library for computing and representing diffs between JSON like data structures
- vich/uploader-bundle (v0.8.1)
Ease file uploads attached to entities
- bit3/remote-objects (1.2)
Remote object method invokation framework
- mikealmond/coverartarchive (v0.1.1)
A PHP library for accessing the CoverArtArchive API
- candycms/core (3.0.5, 3.0.4)
Core elements for candyCMS.
- conradkleinespel/database-log-laravel4 (v1.0.2)
A Laravel 4 Service Provider that saves logs to the database asynchronously with a queue.
- conradkleinespel/twig-laravel4 (v1.0.2)
- rampage-php/framework (1.0.0-alpha3)
Rampage PHP Framework based on Zend Framework 2
- castanet/userid (0.0.6)
Emulate Nginx's HTTP Userid module
- davidbadura/fixtures-bundle (v1.0.7)
A Symfony2 bundle to load yaml fixtures. Easy extendable, resolve object dependency and validate objects.
- lazy/db (1.0b8, 1.0b7, 1.0b6, 1.0b5)
ORM for PHP >= 5.3.0
- aoyagikouhei/pg (0.0.4)
PHP Class for PostgreSQL
- lox/pheasant (v1.1.1)
A lightweight data mapper for MySQL and PHP 5.3+
- alexshelkov/simpleacl (2.0.15)
Simple Access Control List (ACL) for PHP.
- xi/fixtures (1.1.0)
Convenient creation of Doctrine entities in tests. Like Ruby's FactoryGirl.
- symfony-cmf/block-bundle (1.0.0-alpha3)
Symfony CMF Block Bundle
Site News: Blast from the Past - One Year Ago in PHP
- ZetCode.com: PostgreSQL PHP Tutorial
- Lorna Mitchell's Blog: Using an Existing Vagrant Setup for PHP Development
- Martin Sikora's Blog: Silex + Doctrine 2 ORM
- Tom Barrett's Blog: WordPress is more than a CMS, it is a PHP Framework
- Evan Coury's Blog: Module-specific layouts in Zend Framework 2
- Michael Nitschinger's Blog: Writing a simple lexer in PHP
- Community News: Drafts of PSR-1 (and prelim PSR-2)
- Phil Sturgeon's Blog: Composer with CodeIgniter
- Developer.com: Creating a Custom ACL in PHP
- NetTuts.com: Aspect-Oriented Programming in PHP
- Ibuildings techPortal: Conference Report: Whisky Web
- Sameer Borate's Blog: Downloading Gmail attachments using PHP
- PHP.net: PHP 5.4.3 and PHP 5.3.13 Released!
- Anson Cheung's Blog: Create nodes in eZ Publish using PHP
- Rob Allen's Blog: Vagrant in Zend Framework 1
Better Documentation for PHP internals - Lately in PHP podcast episode 35
That is one of the topics discussed by Manuel Lemos and Ernani Joppert in the episode 35 of the Lately In PHP podcast.
They also talked about having more optimized PHP opcodes, some interesting PHP feature proposals that got rejected, as well the article about the top version control systems used by PHP developers.
Listen to this podcast, or watch the hangout video, or read the transcript to learn more about this and other interesting PHP discussions.
Seriously: PHP 5.4.15 and PHP 5.3.25 really were released!
PHP 5.5.0RC1 is available
PHP 5.4.15 and PHP 5.3.25 released!
Christopher Martinez: Static code analysis tools for PHP
Christopher Martinez has a recent post to his site that covers some of the static analysis tools available for PHP including the PHP Mess Detector, PHP CodeSniffer and the PHP Analyzer.
I believe in writing code that is easy to understand, easy to test, and easy to refactor. Yes, I realize that the statement above is pretty general and open to interpretation. Not everyone needs external tools to ensure quality in their code...but, I work on things from time to time that have absolutely no tests. [...] For whatever reason, this happens a lot more frequently in the PHP world. I'm guilty of not writing tests and checking how I write code, sometimes, too. Things are bright, though, for the PHP community - for quite some time now, we've had fantastic tools that assist us in writing better code.He covers each of the tools, talks some about what they're good for and gives examples of their use, including output. He also talks some about the Pfff set of tools created by Facebook. He also talks some about how these tools fit into his daily work as a part of his pre-commit hooks in git.
Link: http://chrsm.org/2013/05/05/code-analysis-tools-for-phpPhil Sturgeon: Composer and PSR-0: Friends, Not Relatives
Phil Sturgeon has a new post today that looks at the relationship between the PSR-0 standard (autoloading structure) and Composer - noting that they're friends, not relatives.
As a huge proponent of Composer, a happy user of PSR-0 and a voting member on the PHP-FIG I get into plenty of conversations about all of them and it worries me how much confusion there is in the community about these things not actually being related. [...] It seems that a lot of folks discover Composer and PSR-0 at the same time and seem to assume they are the same thing - especially since both Composer and PSR-0 have the idea of a "vendor" and a "package", but those two things are not related to each other either. These are a few points that I have wanted to clarify during some strange conversations over the last few weeks.He goes on, trying to clear up some of the confusion around the idea of "vendors" and vendor names. He talks about naming schemes and how they may or may not be related to the vendor name on the package. He looks at the PSR-0 loading methods and how the structure of the library/repository effects that (noting that Composer can be made to accommodate something not PSR-0 by default). He suggests that PSR-0 needs to remain "implementation agnostic" and that Composer, at the same time, should remain "specification agnostic" .
Link: http://philsturgeon.co.uk/blog/2013/05/composer-and-psr0-friends-not-relativesMiro Svrtan: First PHP Meetup by PHP Srbija in Belgrade
Miro Svrtan has a recent post to his site talking about the first ever PHP meetup that happened in Belgrade in at the end of April organized by the PHP Srbija community.
With gathering of more then 250 developers this proved to be a much needed event there and congratulations to organizers for doing it. As a organizer of similar (but much smaller) PHP community in Zagreb I was in constant contact with organizers and was very happy when we were invited to join them on this occasion, especially when they approved my proposal to talk about Laravel4 there.Even the local media picked up on the meeting and a larger venue had to be found at the last minute due to the overwhelming response. There were a few different topics mentioned (including BDD, a questionnaire, best practices in component libraries and web security) before getting to the main talk.
I would take this opportunity to thank whole PHP Srbija organization committee for inviting us & once again congratulate them on bringing such a large community together. Link: http://www.mirosvrtan.me/blog/2013/05/first-php-meetup-by-php-srbija-in-belgradeCodeception.com: Specification or Testing: The Comparison of Behat and Codeception
On the Codeception site today there's a new post that compares their tool, Behat and PHPUnit for testing your applications.
This is guest post by Ragazzo. He uses Behat as well as Codeception for making his project better. He was often asked to do a comparison between Codeception, Behat, and PhpUnit. In this post he explains the commons and different parts of this products.The author talks some about the difference between functional/acceptance tests and how they fit in with behavior driven development. He includes some examples of Behat test formats (Gherkin) and how it can be used for both the functional and acceptance side of things. He also talks some about why he prefers Codeception over Behat(+Mink) for his testing. A sample Codeception test is included, showing a login form check.
Link: http://codeception.com/05-06-2013/specification-testing-coparison.htmlCommunity News: Packagist Latest Releases for 05.08.2013
- eloquent/schemer (0.1.0)
Generic schema validation library for PHP, based on JSON Schema.
- lazy/db (1.0b4, 1.0b3)
ORM for PHP >= 5.3.0
- mjohnson/uploader (4.0.13)
File uploader and validation plugin for CakePHP.
- openlss/lib-datatables (0.0.2)
PHP Interface for jQuery Datatables (http://datatables.net). Simple standalone, non-framework based.
- openlss/lib-datamodel (0.0.2)
Implements a callable object from an array of data that can be extended to implement inline formatting.
- openlss/lib-url (0.0.11)
URL building library that allows dynamic registration at runtime.
- conradkleinespel/database-log-laravel4 (v1.0.1, v1)
A Laravel 4 Service Provider that saves logs to the database asynchronously with a queue.
- conradkleinespel/twig-laravel4 (v1.0.1, v1.0.0)
- sonata-project/user-bundle (2.1.1, 2.1.0)
Symfony SonataUserBundle
- priithansen/silverstripe-foundation-boilerplate (4.1.6)
Foundation 4 Theme for SilverStripe CMS
- rah/rah_flat (0.1.0)
Textpattern CMS templates as flat files
- triplepoint/php-units-of-measure (v1.1, v1.0)
A PHP library for converting between standard units of measure.
- rcrowe/twigbridge (0.3.1)
Adds the power of Twig to Illuminate / Laravel 4
- dmishh/recaptcher (1.0.0-beta3)
Yet another reCAPTCHA PHP implementation
- dmishh/recaptcha-bundle (1.0.0-beta2)
reCAPTCHA support for Symfony2 with easy-to-use integration to Security Component.
- manhim/cervo (2.1.0)
A lightweight and highly modular structure framework for PHP.
- rah/rah_knots (0.3.0)
CMD+S and CTRL+S Textpattern CMS editors
- pirum/pirum (1.1.5)
Pirum, the simple PEAR Channel Server Manager
- clubmaster/formextra (1.1)
ClubMaster form extra.
- soliantconsulting/entity-audit (v1.0)
Doctrine 2 Entity Auditing
- cnlpete/image-metadata-parser (v0.0.2)
An abstraction to Exif, ITPC and XMP
- catchamonkey/phighcharts (v0.1.3)
A PHP library for the Highcharts JavaScript charting library
- dynamic/silverstripe-locator (1.0.0)
SilverStripe Locator Module
- kamisama/cake-resque (3.3.5)
A CakePHP plugin for creating background jobs with Resque
- gregwar/captcha (v1.0.6)
Captcha generator
- sonata-project/formatter-bundle (2.2.1, 2.2.0)
Symfony SonataFormatterBundle
- ncsuwebdev/otframework (3.0.2)
Base application framework
- markjaquith/wp-tlc-transients (1.0)
A WP transients interface with support for soft-expiration, background updating of the transients.
- sonata-project/media-bundle (2.2.1, 2.2.0)
Symfony SonataMediaBundle
- sonata-project/doctrine-orm-admin-bundle (2.2.1)
Symfony Sonata / Integrate Doctrine ORM into the SonataAdminBundle
- textpattern/installer (1.0.2)
Textpattern plugin and theme installer
- prggmr/xpspl (v4.0.0)
Signals for PHP
- rah/rah_debug (0.2.3)
User tied debugging information plugin for Textpattern
- sonata-project/page-bundle (2.2.0, 2.2.1)
Symfony SonataPageBundle
- rah/rah_repeat (1.0.1)
Iterations plugin for Textpattern
- rah/rah_external_output (1.0.4)
Content-type snippets plugin for Textpattern
- rah/rah_terminal_txpmarkup (0.1.1)
Textpattern markup language module for rah_terminal
- sonata-project/admin-bundle (2.2.2, 2.2.1, 2.2.0)
Symfony SonataAdminBundle
- rah/rah_terminal_textile (0.1.1)
Textile module for rah_terminal
- rah/rah_terminal_markdown (0.1.2, 0.1.1)
Markdown module for rah_terminal
- sonata-project/block-bundle (2.2.1, 2.2.0)
Symfony SonataBlockBundle
- rah/rah_terminal (0.1.1)
Web terminal plugin for Textpattern
- phundament/app (0.19.1, 0.19.0)
Yii Application Boilerplate, with packages from composer repository http://packages.phundament.com
- fm/worker-bundle (v0.1.2, v0.1.1, v0.1.0)
Adds worker functionality to a Symfony2 project, using Beanstalkd as the message queue
- netglue/ng-contact (0.1.1)
ZF2 Module providing a simple re-usable contact form for a website
- rah/rah_replace (0.4.2)
Search and replace plugin for Textpattern
- alphalemon/alphalemon-cms-bundle (v1.1.0-beta2)
AlphaLemon CMS is an Open Source Content Management System Application, built on top of Symfony2 Framework, providing an easy an intuitive user-interface, to improve the website's content management experience
- phundament/p3media (0.11.10)
Yii media file manager module with ckeditor integration
- widmogrod/zf2-assetic-module (1.2.2, 1.2.1)
Zend Framework 2 module that provides complete integration of Assetic library
- soflomo/sitemap (v0.1.1, v0.1.0)
Sitemap module for Zend Framework 2
- kunstmaan/admin-bundle (v2.2.7)
The Kunstmaan Admin bundle supplies your project with a basic, elegant backend interface you can modify and extend so you can make your perfect admin module. The clean interface makes it straightforward for you and the people working with it to change settings and modify content.
- kunstmaan/adminlist-bundle (v2.2.2)
Every website contains several lists of content ranging from articles on a blog, to drop down values. The KunstlaanAdminListBundles takes CRUD a step further by supplying filtering, exports to csv and editing capabilities to these content entities.
- sonata-project/seo-bundle (1.1.2)
Symfony SonataSeoBundle
- payment/httpclient-guzzle (1.0.5)
http client bridge for guzzle
- payment/saferpay (1.0.2)
Saferpay payment service library
- imagin/fotolia-api (v1.0-RC2)
Composer package of the Fotolia API toolkit
- baum/baum (1.0.1)
Baum is an implementation of the Nested Set pattern for Eloquent models.
- fza/mysql-doctrine-levenshtein-function (v0.1)
Provides the `LEVENSHTEIN()` and `LEVENSHTEIN_RATIO()` MySQL functions for Doctrine2.
- symfony-cmf/routing (1.1.0-alpha1)
Extends the Symfony2 routing component for dynamic routes and chaining several routers
Community News: Latest Releases from PHPClasses.org
- PHP Log File Database
Package:Summary:Log messages to files or to a MySQL databaseGroups:Author:Description:This class can log messages to files or to a MySQL database...
Read more at http://www.phpclasses.org/package/8047-PHP-Log-messages-to-files-or-to-a-MySQL-database.html
- PHP Gantt charts in PDF
Package:Summary:Output Gantt charts using PDF documentsGroups:Author:Description:This class can output Gantt charts using PDF documents...
Read more at http://www.phpclasses.org/package/8034-PHP-Output-Gantt-charts-using-PDF-documents.html
- PHP TLD Domain Name
Package:Summary:Determine the Top Level Domain from a given URLGroups:Author:Description:This class can determine the Top Level Domain from a given URL...
Read more at http://www.phpclasses.org/package/8029-PHP-Determine-the-Top-Level-Domain-from-a-given-URL.html
- PHP-MVC
Package:Summary:Library that implements the MVC design patternGroups:Author:Description:This package is a library that implements the MVC design pattern...
Read more at http://www.phpclasses.org/package/8044-PHP-Library-that-implements-the-MVC-design-pattern.html
- IP2Location PHP Module
Package:Summary:Get geographical details of an IP with IP2LocationGroups:Author:Description:This class can get geographical details of an IP with IP2Location...
Read more at http://www.phpclasses.org/package/8042-PHP-Get-geographical-details-of-an-IP-with-IP2Location.html
- OneClickCaptcha
Package:Summary:CAPTCHA validation based on user clicks on circlesGroups:Author:Description:This class can perform CAPTCHA validation based on user clicks on circles...
Read more at http://www.phpclasses.org/package/8023-PHP-CAPTCHA-validation-based-on-user-clicks-on-circles.html
- PHP Google Driving Directions
Package:Summary:Get driving directions using Google Maps APIGroups:Author:Description:This class can get driving directions using Google Maps API...
Read more at http://www.phpclasses.org/package/8022-PHP-Get-driving-directions-using-Google-Maps-API.html
- Persian Db Class
Package:Summary:Execute MySQL queries and paginate resultsGroups:Author:Description:This class can execute MySQL queries and paginate results...
Read more at http://www.phpclasses.org/package/8038-PHP-Execute-MySQL-queries-and-paginate-results.html
7PHP.com: Win (TWO) Free Tickets To Hear Rob Allen Introduce Zend Framework 2 (Nomad PHP)
The 7PHP.com site, in collaboration with the Nomand PHP user group is giving away two free tickets to attend this month's user group event (happening May 22nd).
NomadPHP is like a virtual PHP User Group mainly for people who do not have the chance to avail of a local PHP user group. But it is open to ANYONE around the world. NomadPHP is an initiative brought forward by the icon of The PHP Community, namely 'His Awesomeness' Mr Cal Evans. It will kick-start its first group talk session on the Wednesday 22nd May 2013 (i.e in some 16 days as from the date of this post). The speaker is the PRO PHP Guy / PRO Zend Framework Evangelist and author of the book Zend Framework in action, Rob Allen. Rob will be introducing and talking about Zend Framework 2 - it is a must for anyone willing to learn ZF 2.The Nomad PHP user group is designed to be a "user group for those that don't have one". It's a virtual group meeting once a month that you can attend anywhere in the world. You do have to purchase tickets, however. This post shows you how you can enter to win one of the two free tickets, though - either via email or by writing a PHP article for 7PHP.com.
Link: http://7php.com/nomadphp-may-2013-free-tickets