Feed aggregator
PHP 5.4.16 and PHP 5.3.26 released!
Pragmatic REST & BDD at IPC
Symfony Blog: Symfony 2.3.0, the first LTS, is now available
As is mentioned in this new post to the Symfony blog, the latest milestone release of the popular framework has been made - Symfony 2.3.0.
We were all waiting for it and many of us have been working hard for the last four years to make it happen. Today, Symfony 2.3.0 is available and this is the first long-term support release for Symfony version 2. I'm so happy that we were able to achieve this important milestone in the life of the framework. THANK YOU for making it possible. [...] That gives us the best of two different worlds: small teams and agile companies can benefit from the latest features by upgrading every six months (they have two months to upgrade); large teams and traditional companies can standardize on a release. [...] And 2.3.0 is our first long term support release. We, the community, are going to maintain it for the next three years (until May 2016).The post includes some statistics about this latest release as well as some of the new features that come along with it. For those that want to upgrade right away, there's also some instructions on what to change in your "composer.json" file to try it all out.
Link: http://symfony.com/blog/symfony-2-3-0-the-first-lts-is-now-availablephp|architect: May 2013 Issue Released!
The php|architect group has published their May issue with a wide range of topics covered. The cover story is about microframeworks, but other topics include:
- "Cleared for Takeoff: Getting Off the Ground with Flight" (ndrew Podner)
- "Learning How to Learn" (Joel Clermont)
- "Avoiding System Dependency by Decoupling Your Dev Environment" (Jacques Woodcock)
- "Education Station: Simple HTTP Clients with Guzzle" (Matthew Setter)
You can pick up this single issue for $4.99 USD or you can subscribe to the full year of PDFs for $35 USD.
Link: http://www.phparch.com/magazine/2013-2/mayPHPMaster.com: Aura.Web: Aura's Page Controller for MVC
On PHPMaster.com today Hari K T has spotlighted one of the components from the Aura framework, the Aura.Web component.
MVC is an acronym that means Model-View-Controller. In this tutorial I would like to introduce you to Aura.Web, the controller component of the Aura Library. Here I'll show you how to use it to build your own controller, and also how to use a response transfer object to issue HTTP response headers, and integrate a templating engine like Mustache for rendering views.He starts off with an overview of how the component is architected and how it is used to create controllers and what dependencies it needs injected. He talks about some of the objects and the methods they provide and includes some sample code for a basic "Index" controller. He shows how to integrate the Mustache templating engine for output and how to work directly with HTTP responses.
Link: http://phpmaster.com/aura-web-auras-page-controller-for-mvcCommunity News: Packagist Latest Releases for 06.05.2013
- titon/route (0.5.3)
The Titon route package adds support for dynamic route handling and mapping.
- mpratt/simple-lifestream (3.0.0)
A library that returns lifestream events from a bunch of social sites/services.
- contao/core (3.1.0, 2.6.2, 2.6.3, 2.6.4)
Contao Open Source CMS
- heydon/uarray (v1.0.0-beta5, v1.0.0-beta4)
Allow manipulation of PICK Dynamic Arrays in PHP for use with RockSoftware's U2 products
- mjohnson/admin (0.23.0)
A CakePHP admin plugin.
- stojg/puny (0.1)
A puny micro library for displaying blog posts from markdown files
- icecave/archer (0.4.2)
PHP projects by convention.
- stojg/crop (1.0.0)
Image cropping classes
- heydon/redback (v1.0.0-beta2, v1.0.0-beta1)
PHP Connector for the RocketSoftware RedBack Application
- levare/modules (1.0.1, 1.0.0)
A Module Manager for Laravel 4
- codeblanche/depend (v1.1.0-RC1)
Less Configuration, More Injection
- jtgrimes/less4laravel (0.1.5)
Bringing lessphp into Laravel
- stefano/stefano-tree (1.0.3)
Library for managing tree structures
- tecnick.com/tcpdf (6.0.020, 6.0.019)
TCPDF is a PHP class for generating PDF documents.
- slam/tcpdf (6.0.020, 6.0.019)
TCPDF is a PHP class for generating PDF documents.
- geoffroy-aubry/errorhandler (v1.1.2)
Error and exception handler
- stefano/stefano-db (1.0.3)
Modul for Zend Framework 2
- stefano/stefano-object (1.0.1)
Not only dummy object
- stefano/stefano-convert (1.0.1)
Convert object or array to the Json, Xml
- fixedd/maxmind-minfraud (1.52.0)
Library to communicate with Maxmind's MinFraud API.
- bit3/contao-doctrine-dbal-driver (3.1.12, 3.0.10, 2.11.5, 3.1.11, 3.0.9, 3.1.10, 2.11.4, 3.1.9, 3.0.8, 3.1.8, 2.11.3, 3.1.7, 3.0.7, 2.11.2, 3.1.6, 3.0.6, 2.11.1, 3.1.5, 3.0.5, 3.1.4, 3.0.4, 3.1.3, 3.0.3, 3.1.2, 3.0.2, 3.1.1, 3.0.1, 3.1, 3.0, 2.11)
Database Driver using Doctrine DBAL for Contao Open Source CMS
- aequasi/memcached-bundle (1.4.1, 1.3.7)
Memcached Bundle
- mjohnson/transit (1.2.2)
A file uploader, validator, importer and transformer library.
- netglue/zf2-ssl-module (0.1.2)
ZF2 Module that helps enforce the use of an SSL connection for HTTP requests
- wa72/jsonrpc-bundle (v0.1.1)
JSON-RPC server for Symfony2: exposes services registered in the service container as JSON-RPC webservices
- teacup/orm (0.2.0)
Tiny ORM for simple CRUD operations.
- sammaye/mongoyii (1.2.7)
A Yii MongoDB ORM
- bear/phptal-module (0.1.0)
BEAR.Sunday PHPTAL adapter module
- turnaev/dev-generator-tool-bundle (v1.0.0)
Console tool bundle for Symfony 2.2+
- simplon/db (1.2.4)
Simplon DB Libraries
- turnaev/dev-console-tool-bundle (v1.0.4, v1.0.3, v1.0.2, v1.0.1, v1.0.0)
Console tool bundle for Symfony 2.2+
- kitpages/data-grid-bundle (v1.9.0)
Symfony DataGridBundle
- orchestra/control (v2.0.0-BETA1)
Orchestra Platform Control Extension
- zweifisch/zf (v0.3.1)
a micro php web/cli framework/router
- rtens/mockster (1.1.4)
PHP Mocking framework
- barryvdh/laravel-ide-helper (v1.1.3)
Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.
- lorenzo/linkable (1.1.1, 1.1)
CakePHP Linkable Behavior
- sanyatuning/dlutwbootstrap (0.1.3.3)
ZF2 module to generate Twitter Bootstrap UI - forms, navigation, etc.
- bit3/contao-doctrine-dbal (2.3)
Doctrine DBAL Bridge for Contao Open Source CMS
- event-band/band-framework (0.1.0-beta1)
Asynchronous event dispatching
- behat/mink-extension (v1.1.4)
Mink extension for Behat
- mlalbuquerque/silex-skeleton (v3.3.4)
A Silex skeleton for little (not tiny) projects
- turnaev/console-tool-bundle (v1.0.0)
Console tool bundle for Symfony 2.2+
- mauserrifle/simresults (v0.1.1)
Simrace result reader for PHP
- ocramius/proxy-manager (0.3.6)
A library providing utilities to generate, instantiate and generally operate with Object Proxies
- rwoverdijk/sxbootstrap (1.9.0, 1.8.0)
A twitter bootstrap module for ZF2 (zend framework 2) based on rwoverdijk/assetmanager
- sparkling/adyen-bundle (0.3.4, 0.3.3)
This AdyenBundle for Symfony2 helps you with adding recurring billing to your application
- yzalis/supervisor-bundle (1.0.1, 1.0.0)
Manage your supervisor instance in your Symfony2 application.
- bcc/resque-bundle (1.1.7)
BCCResqueBundle
- alexmcarrow/db (1.42, 1.41.4, 1.41.3, 1.41.2, 1.41.1, 1.41)
MySQL(i) class
- yzalis/supervisor (1.0.0)
Manage your supervisor instance with PHP..
- lamina/formbundle (1.2-RC3)
Forms management for Symfony 2
- synchro/uasparser (v0.52)
UASparser is a PHP parser and classifier for user agent strings presented by HTTP clients using databases from http://user-agent-string.info/.
- kitpages/util-bundle (v3.0.1)
Small common tools used for Kitpages bundles
- eld/bridgevb (1.1.1)
Laravel 4 and vBulletin 4 bridge for authentication services.
- kitpages/file-system-bundle (v3.0.0)
Symfony Kitpages FileSystem Bundle. Abstraction layer for files (local, S3)
- sparkling/vat-bundle (0.1.2)
A Symfony2 Bundle that checks a european VAT number
- ruudk/moneybird-bundle (0.1.6)
A Symfony2 bundle for working with Moneybird
- ruudk/campfire-exception-bundle (0.1.8)
A Symfony2 Bundle that logs exceptions to a Campfire chat room
- rwoverdijk/assetmanager (1.3.1)
An assetmanager module for Zend Framework 2.
Community News: Latest Releases from PHPClasses.org
- PHP Cron Job Manager Script
Package:Summary:Add PHP scripts to be executed periodicallyGroups:Author:Description:This package can add scripts to be executed periodically...
Read more at http://www.phpclasses.org/package/8089-PHP-Add-PHP-scripts-to-be-executed-periodically.html
- PHP Sync Files
Package:Summary:Share variables across applications using filesGroups:Author:Description:This class can share variables across applications using files...
Read more at http://www.phpclasses.org/package/8071-PHP-Share-variables-across-applications-using-files.html
- PHP Outlook Web Access
Package:Summary:Access Microsoft Exchange Web services via OWA APIGroups:Author:Description:This package can access Microsoft Exchange Web services via Outlook Web Access API...
Read more at http://www.phpclasses.org/package/8068-PHP-Access-Microsoft-Exchange-Web-services-via-OWA-API.html
- PHP Price Rounder Calculator
Package:Summary:Round price amounts according to certain rulesGroups:Author:Description:This class can round price amounts according to certain rules...
Read more at http://www.phpclasses.org/package/8067-PHP-Round-price-amounts-according-to-certain-rules.html
- PHP Form To DB
Package:Summary:Validate form submission and save to MySQL recordsGroups:Author:Description:This class can validate form submission and save to MySQL records...
Read more at http://www.phpclasses.org/package/8088-PHP-Validate-form-submission-and-save-to-MySQL-records.html
- PHP Tournament Manager
Package:Summary:Manage the games of a tournament between teamsGroups:Author:Description:This class can manage the games of a tournament between teams...
Read more at http://www.phpclasses.org/package/8085-PHP-Manage-the-games-of-a-tournament-between-teams.html
- Xyndravandria Mondraviel
Package:Summary:Template engine that fills tags with parametersGroups:Author:Description:This class is a template engine that replaces tags with parameters...
Read more at http://www.phpclasses.org/package/8081-PHP-Template-engine-that-fills-tags-with-parameters.html
- Easy MySQLi
Package:Summary:Execute MySQL queries using prepared statementsGroups:Author:Description:This class can execute MySQL queries using prepared statements...
Read more at http://www.phpclasses.org/package/8084-PHP-Execute-MySQL-queries-using-prepared-statements.html
Igor Wiedler: Introducing Stack
Igor Wiedler has started up a new project that helps you combine "stacks" of middleware related to the HttpKernelInterface from Symfony as a sort of decorator to its base functionality - Stack.
In the post titled HttpKernel middlewares I brought up the idea of bringing rack middlewares to Symfony2. In order to solidify this effort I would like to announce a new project: Stack. Stack is a convention for composing HttpKernelInterface middlewares. The name and logo are based on the idea of building a stack of middleware layers, each of which handles a particular piece of logic. [...] The main goal of stack is to give the idea of "HttpKernel middlewares" a name, so that we can more easily talk about it.There's a stackphp organization on Github that has the start of this set of middleware pieces including tools to help you build other features. The project is focused around the Symfony HttpKernelInterface because it was the simpler, more standardized option for now. He notes that there's no reason that, in the future, when things are more standardized it couldn't broaden out to PHP as a whole.
Link: https://igor.io/2013/05/23/introducing-stack.htmlIBM Bundles Zend Server to Deliver Self-Service Enterprise PHP Platform on IBM SmartCloud!
We are excited to announce that IBM has partnered with Zend to offer a self-service Enterprise PHP platform on IBM SmartCloud PaaS. This IBM offering will ensure that IBM customers have a single point of contact for their application delivery requirements. IBM’s customers will get the benefits of Zend’s solution and expertise in enabling enterprise PHP, coupled with IBM’s innovation and support around the cloud, as well as the joint innovation, integration and support that the partnership delivers.
Highlights of the PHP Platform include:
- IBM & Zend have built self-service, ready-to-go Enterprise PHP application environments. These deployments are auto-scaling and fault tolerant out of the box.
- IBM is being very aggressive in how they are pricing the offering. No doubt, IBM is serious about the cloud. They are innovating both on functionality and the overall business model in order to deliver a differentiated value-proposition.
- Zend Server’s DevOps & automation capabilities integrate deeply with IBM SmartCloud‘s automation capabilities. [See Zend Server DevOps Video for a short overview of Zend Server]
- Zend Server’s mobile gateway makes it incredibly simple for customers to build and deploy API-first architectures for mobile apps. These APIs can easily be deployed into IBM SmartCloud and leveraged by IBM Worklight.
- Zend Server’s Web and mobile monitoring capabilities make it easy for customers to tie application-specific metrics and monitoring data into their single pane-of-glass monitoring & management systems.
- Zend Server not only allows existing IBM customers to interoperate with their existing IBM assets, such as IBM DB2 and IBM WebSphere, but also has out-of-the-box option for Web-centric assets such as MongoDB, MySQL, social platforms and other technologies that are critical to meet the requirements of modern Web and mobile apps.
IBM & Zend have had a strong strategic partnership for many years. We have jointly enabled a broad set of IBM customers including Starbucks, DHL, Prada, and many others. These customers have been able to take full advantage of opportunities in Web and mobile, due to PHP and Zend’s ability to deliver faster, more iterative apps while retaining high quality.
We all recognize that enterprise development and operations teams are under extreme pressure to more effectively deliver value to their business owners. This is especially true in the age of mobility and cloud services, which is a big paradigm shift in how companies engage their target audiences. Also, business owners in this day and age are becoming increasingly opinionated with regards to the user experience they wish to drive. Businesspeople themselves are consumers of a broad set of engaging mobile applications and cloud services.
In this new era of engagement, PHP continues to shine in its ability to deliver value rapidly and at a high level of quality to Web and mobile users. PHP runs over 39 percent of the Web workload [Netcraft: PHP Grows & Grows]. Seventy-five percent of developers using dynamic languages for mobile apps are using PHP [Evans Data Survey: Mobile Development Survey 2012, v2]. Therefore, it makes a huge amount of sense for IBM, the leader in enterprise IT and Zend, the leader in PHP app development, to partner to deliver a great solution for the mobile-first Enterprise.
It has been a great pleasure to have worked with the IBM on building this out over the past year and a half. We are very much looking forward to supporting IBM in rolling this offering out into the market and winning over enterprise customers for this platform. We are also looking forward to partnering on further innovations from both IBM & Zend, some of which are already in the pipeline, in order to strengthen the solution for enterprise customers.
If your company has interest in exploring the IBM SmartCloud, feel free to contact me and I’ll route you to the right person or sign-up on the IBM Web site for a Free 60 day trial of IBM SmartCloud.
Happy PHP’ing!
Community News: ZendCon Europe - November 18th-20th (Paris, France)
Zend has officially announced that they will be presenting a "sister" conference to the one they already hold each year in California, this time in Europe - ZendCon Europe.
ZendCon PHP 2013 will be the place where European PHP professionals gather this fall. [...] Attend Europe's largest conference focusing on Enterprise PHP solutions, Frameworks, PHP Training and all things PHP. Meet the legends who created PHP and are partly responsible for what the WWW looks like today. Whether you wish to find a job, take PHP training, find a services company to help you, or just meet the greatest developer ecosystem ever -You are in the right place!The event will be held in Paris, France on November 18th through the 20th at the Marriott Rive Gauche. Following the same pattern as the US version of the conference, the first day will be tutorials with regular sessions the following days. It's still pretty early on so there's no details about the Call for Papers or anything yet, but you can sign up for more information on the current conference site.
Link: http://europe.zendcon.comLorna Mitchell: PHP Version Adoption
In this new post to her blog Lorna Mitchell takes a look at some of the current statistics around PHP version adoption - all the way from the ancient 5.0 through the shiny new (upcoming) 5.5 releases.
PHP runs over 75% of all websites whose technologies are known (source: w3techs), which makes for a really REALLY long tail of users who once installed wordpress, phpmyadmin, or some other open source project that helped their business needs at the time. What they don't do is upgrade. PHP's current usage statistics look like this (source and raw numbers are if you want them):She points out that around half of the results show that sites are running on unsupported versions of PHP (<=5.2) but notes that it's not always their choice. There's lots of factors that play into upgrading these versions that are not always in the user's control (like the speed of distro updates). She covers some of the things that came around in the newer versions of PHP 5.2 and 5.3 including some large performance jumps, especially in 5.4.
In truth, the future is already here for those people on PHP 5.4 and beyond. Keeping PHP upgraded is just part of our regular maintenance workflow, and the language is progressing in regular and manageable steps. If you've been left behind then I strongly recommend that you start making plans for upgrading your platform, or moving to a newer one. Link: http://www.lornajane.net/posts/2013/php-version-adoptionGonzalo Ayuso: Working with AngularJS and Silex as Resource provider
Gonzalo Ayuso has a new post to his site looking at the use of Silex and AngularJS together to make Resources that AngularJS can pull data from.
This days I'm playing with AngularJS. Angular is a great framework when we're building complex front-end applications with JavaScript. And the best part is that it's very simple to understand (and I like simple things indeed). Today we are going to play with Resources. Resources are great when we need to use RestFull resources from the server. In this example we're going to use Silex in the backend. Let's start.He shows how to get the Resource functionality working in AngularJS (including another file) and a sample SQL table definition to hold some author/message information. He includes the HTML for the one page the example needs and the various pieces - the Javascript controller, the Silex routes, the routing configuration and the Resource controller. A screencast and the complete code are also provided.
Link: http://gonzalo123.com/2013/06/03/working-with-angularjs-and-silex-as-resource-providerCommunity News: Packagist Latest Releases for 06.04.2013
- turnaev/mysql-workbench-schema-exporter (v1.0.2)
MySQL Workbench Schema Exporter
- dispatch/dispatch (1.0.2, 1.0.1, 1.0.0)
Dispatch is a PHP 5.3+ utility library for creating web apps
- mjohnson/admin (0.22.0)
A CakePHP admin plugin.
- behat/mink-extension (v1.1.3, v1.1.2, v1.1.1)
Mink extension for Behat
- geekality/website (v0.6, v0.5, v0.4.1, v0.4, v0.3)
My homemade MVC framework using Mustache and Less
- eld/bridgevb (1.1)
Laravel 4 and vBulletin 4 bridge for authentication services.
- yepsua/generator-bundle (1.0.0)
The RICH CRUD Generator for Symfony2
- geoffroy-aubry/helpers (v1.2.0)
Some helpers used in several personal packages.
- crunch/ssi-bundle (v0.2.1, v0.2.0)
Server Side Includes (SSI) fragment renderer for Symfony2 applications
- predaddy/predaddy (1.0.0)
Common DDD classes and utilities
- sybio/image-workshop (2.0.1)
Powerful PHP class using GD library to work easily with images including layer notion (like Photoshop or GIMP)
- symfony/icu (v1.2.0, v1.1.0, v1.0.0)
Contains an excerpt of the ICU data and classes to load it.
- mf2/mf2 (v0.1.14)
A pure (generic) microformats-2 parser
- adfab/user (0.1.5, 0.1.4, 0.1.3)
Module managing user
- phery/phery (2.5.5)
XAJAX alternative, phery.js is a library in PHP that maps to all jQuery functions, DOM manipulation, meta arguments and serialization, seamless ajax integration, RESTful emulation, form submission and partial rendering views, plus its PSR-0 compatible
- uecode/uecode (1.1.0)
Uecode Library
- laravel/framework (v4.0.2)
The Laravel Framework.
- scan/kss-bundle (v0.5.1)
A Symfony2 implementation of KSS: a methodology for documenting CSS and generating styleguides
- scan/kss-php (v0.5.1)
A PHP implementation of KSS: a methodology for documenting CSS and generating styleguides
- yepsua/smartwig-bundle (1.0.0)
The jQuery, jQueryUI (and more) Symfony Bundle
- havvg/dry-bundle (v1.1.0)
A Symfony2 bundle providing helpers to ease usage of common patterns.
- symfony/symfony (v2.3.0)
The Symfony PHP framework
- event-band/symfony-bundle (0.1.0-alpha2)
Symfony Bundle for EventBand
- zeichen32/gitlabapibundle (0.1.2)
Symfony2 Bundle to include the gitlab api and the gitlab issue tracker in your app.
- intouch/laravel-newrelic (1.0.2)
Laravel 4 NewRelic Integration
- fsi/datasource (v1.0.7)
FSi DataSource Component
- wa72/jsonrpc-bundle (v0.1.0)
JSON-RPC server for Symfony2: exposes services registered in the service container as JSON-RPC webservices
- omnipay/omnipay (v0.9.2)
Omnipay is a framework agnostic multi-gateway payment processing library
- 0x20h/monoconf (v0.1.1-rc1, v0.1.0)
log4j like logging configuration for the monolog framework
- stefano/stefano-tree (1.0.2)
Library for managing tree structures
- payum/payum-bundle (0.5.0)
The payment bundle integrates payum libs into symfony2 framework
- payum/paypal-pro-checkout-nvp (0.5.0)
Paypal pro checkout
- payum/paypal-express-checkout-nvp (0.5.0)
Paypal express checkout
- payum/paypal-ipn (0.5.0)
Paypal instant payment notification
- payum/omnipay-bridge (0.5.0)
This bridge allows you to use omnipay gateways but in payum like way.
- payum/authorize-net-aim (0.5.0)
Authorize.net advanced integration method (AIM).
- payum/be2bill (0.5.0)
Be2Bill payment lib
- payum/payum (0.5.0)
Payment lib
- ibrows/annotation-reader (1.0.3)
Base Annotation-Reader as enhanced Doctrine Annotation Reader
- h4kuna/object-wrapper (v1.0.4)
Helper whose create object above php function, forexample: curl, fsocket, file...
- fsi/datagrid-bundle (v1.0.5)
FSi Datagrid Bundle
- groupdocs/groupdocs-php (1.5.0)
GroupDocs API library for PHP
- matear/conty (v0.7)
Simple y potente framework de Inversión de control (IoC) e Inyección de Dependencias (DI)
Community News: Latest PECL Releases for 06.04.2013
- mongo 1.4.1
** Bug
* [PHP-814] - Passing in invalid MongoDB to MongoDBRef::get() segfaults
* [PHP-816] - MongoCursor doesn't validate the namespace
* [PHP-827] - Segfault on connect when database name starts with an X
* [PHP-829] - Crash when connecting to replicaSet without passive hosts
* [PHP-846] - Connecting to Unix Domain sockets is impossible
** Improvement
* [PHP-747] - Improve numeric check for write concern option
* [PHP-755] - Support CursorNotFound query flag
* [PHP-756] - Support QueryFailure query response flag
** Task
* [PHP-551] - Update "writes" documentation to cover all WriteConcerns arguments (from the connection string) as well.
* [PHP-836] - Fix more for-type tests after finding with hash_find
* [PHP-839] - Look at inclusion of config-w32.h and config.h in package
- intl 3.0.0
- Fixed build on PHP 5.5+.
- Bring error reporting in converter more in line with the rest.
- Fix parameter parsing in Uconverter::convert() for PHP 5.5.
- Fix intlcal_get_time_zone() not setting local error.
- Fix arginfo for BreakIterator::getLocale().
- Fixed compiler warnings.
- gender 1.0.0
* fixed clone breakage of other objects
* fixed thread unsafety in country data handling
* fixed bug #64740 Gender ignores country for some names
- BLENC 1.1.1b
Upgraded to works with latest PHP version
- BLENC 1.1.0b
Upgraded to works with latest PHP version
- apn 1.0.1
- Initial release
- apn 1.0.2
- Fixed package.xml
- Judy 1.0.0
- First stable release based on 0.1.6 beta
- amqp 1.2.0
1.2.0 Release:
* New methods AMQPChannel::getPrefetchCount() and AMQPChannel::getPrefetchSize()
* Deprecate AMQPQueue::declare() in favor of AMQPQueue::declareQueue()
* Deprecate AMQPExchange::declare() in favor of AMQPExchange::declareExchange()
* Smaller fixes to our stubs
For a complete list of changes see:
https://github.com/pdezwart/php-amqp/compare/v1.0.10...v1.2.0
1.0.10 Release:
* report correct version in module info (Lars Strojny)
* fix class interface definitions (Vladimir Kartaviy)
* add ability to bind a queue with an empty routing key (Vladimir Kartaviy)
* fix constant AMQP_IFUNUSED (Florin Patan, Bernhard Weisshuhn)
* added stubs for ide use (Vladimir Kartaviy, Bernhard Weisshuhn)
* Fixed memory leak in queue->declareQueue (Ilya a.k.a. coodix)
* support for php 5.5 (Lars Strojny)
* add support for read and write timeouts (Bogdan Padalko)
* fix memory leak in queue->consume (Dmitry Vinogradov)
* add support for custom exchange types (empi89)
* support for nested custom headers (Bernhard Weisshuhn)
* fix memory (Bernhard Weisshuhn)
For a complete list of changes see:
https://github.com/pdezwart/php-amqp/compare/v1.0.9...v1.0.10
1.0.9 Release:
* Fix pecl relase
1.0.8 Release:
* Skip var_dump test on PHP 5.2
* Initialize consumer tag string length to zero
* Support connection time outs
* Adding consumer_tag parameter to AMQPQueue::cancel
* Clean up error code handling
1.0.6 Release:
* 62354: Segmentation fault when printing or dumping an object that contains an AMQP object
* Adding in missing tests
* Fixing release number in PHP information
* Adding .gitignore info for Git users
* Cleaning up debug handling
1.0.5 Release:
* 62696: Incorrect exchange type
* Handles server connections being closed during consume and publish correctly
* 62628: Exception thrown in consume will lock PHP
* 61533: Segmentation fault when instantiating channel, queue or exchange with wrong object, then using it
1.0.4 Release:
* 62549: Fixing broken persistent connection
* 62412: Fixing segfault due to destruction order
* 62411: Fixing declaration overload bug
* 62410: Fixing declaration overload for 5.4
* 61337: Adding License file
* 61749: Fixing handling for binary content in envelope
* 62087: Adding appropriate version information
* 62354: Enabling debugging dumping of objects
* 61351: Updating min PHP version requirements to 5.2.0
1.0.3 Release:
* Fixing compilation issue with PHP 5.4
1.0.2 Release:
Fixed bug:
* Memory leak when using AMQPQueue::get from a queue with no messages
1.0.1 Release:
Fixed bug:
* 61247: Allow queue creation with empty queue name, and return auto generated name
* 61127: Segmentation fault when cleaning up an AMQPChannel without calling AMQPConnection::connect first
1.0.0 Release:
Changed/finalized API signature:
* Exposing AMQPChannel
* Exposing AMQPEnvelope
* Exposing more queue and exchange arguments and flags
* Exposing basic.qos
Added persistent connections
Cleaned up codebase
Fixed memory leaks and segmentation faults
0.3.1 Release:
Fixed bug:
* 24323: Cannot get the name for auto-named reply-to queues
0.3.0 Release:
Fixed memory leaks in many functions (courtesy Jonathan Tansavatdi and Andy Wick)
Fixed consume method to return proper values
Cleaned up variable usage
Fixed bugs:
* 22638: Unexpected exit code 1 with AMQPQueue::consume()
* 22698: AMQPQueue::consume
0.2.2 Release:
Made extension compatible with PHP lt 5.3 (courtesy John Skopis)
Fixed wrong typing of message properties (courtesy John Skopis)
0.2.1 Release:
Fixed refcount decrementing bug causing segfaults.
0.2.0 Release:
Works with AMQP 0-8 and 0-9-1 (used by RabbitMQ 2.*)
Modified AMQPConnection object:
* Requires call to 'connect' method to connect (no longer connects on instantiation)
* Added support for disconnect and reconnect
* Added helper setters for port, host, vhost, login and password
Improved consume method to block for MIN messages, and try to get MAX messages if available
Fixed zval descoping bugs
Fixed bugs:
* 17809: Couldn't compile pecl extension under PHP 5.3
* 17831: Segmentation fault when the exchange doesn't exists
* 19707: AMQPQueue::get() doesn't return the message
* 19840: Connection Exception
Avoiding interface overkill
PHP Version Adoption
PHP runs over 75% of all websites whose technologies are known (source: w3techs), which makes for a really REALLY long tail of users who once installed wordpress, phpmyadmin, or some other open source project that helped their business needs at the time. What they don't do is upgrade. PHP's current usage statistics look like this (source and raw numbers are if you want them):
What's alarming about this is that the left half of this graph represents unsupported versions of PHP. PHP 5.2 has been end of life since January 2011. This doesn't mean that you can't use it any more, but it does mean that in terms of security updates, you are out of luck. Some distributions will try to retro-fit some of the fixes but essentially your PHP applications seem a bit lacklustre because, well, you're using technology from 2006.
Where To Go From HereNobody chooses a PHP 5.2 platform, these things just happen, and I absolutely don't mean this post as a rant - more as a way of raising the issue and trying to give some pointers for moving forward. When I work with organisations to upgrade their platforms, usually either their hosting company is living in 2006, or they have a "supported" distro which prevents them from using modern technologies, or there's been no budget to upgrade, or ... really there are lots of (really valid) excuses. However good things await in newer versions of PHP!
PHP 5.3 has actual useful OOP features! We have anonymous functions (this feature will change your life, and for JS developers especially will make your PHP make more sense), the SPL extension is more than just iterators, and the DateTime extension is fabulous and finished in PHP 5.3. Also in PHP 5.3 (released 2009, it's not cutting edge) is the vitally important E_DEPRECATED error reporting flag. This will identify any features you are using in the current version of PHP which won't be available in the next version - if you are on PHP 5.3, or can get there, your upgrade path gets much easier! If you have a living PHP application, I can't recommend this move strongly enough.
PHP 5.4 has some cute new features, but whether you need them or not, PHP 5.4 has faster execution time and reduced memory footprint. Here's the graph from some benchmarks I did between versions of PHP last month - the Y axis is the number of seconds each version took, on average, to run the benchmark script included in the PHP source tree (raw numbers are available in a gist):
Whether you want to be able to use traits or not, PHP 5.4 will improve the performance of your application and reduce your hardware costs ... all you have to do is upgrade between versions of free software. Why isn't the PHP 5.4 segment on the first graph bigger? There are some explanations, such as the lack of APC, for this version, but nothing that seem compelling to me (happy to hear your stories in the comments).
PHP 5.5 isn't actually production-ready, as we're still in the release candidate phase for it, but it's probably weeks away. Look out though, a more regular release cycle for PHP means that there will be smaller incremental changes and we'll all be upgrading PHP the same way we maintain our other software - so pretty regularly. Beyond PHP 5.3, the effort and risk in upgrading is much reduced.
The FutureIn truth, the future is already here for those people on PHP 5.4 and beyond. Keeping PHP upgraded is just part of our regular maintenance workflow, and the language is progressing in regular and manageable steps. If you've been left behind then I strongly recommend that you start making plans for upgrading your platform, or moving to a newer one. The effort will be well worth it when your application is still evolving and performing for many years to come! If any other platform gave away such incredible improvements in features and performance for free, it would be big news. Let's make it big news in PHP too.
Lorna is an independent web development consultant, author and trainer, available for work (interesting projects only). This post was originally published at LornaJane
Shanghai PHP conference 2013
7PHP.com: Things You Don't Know About NomadPHP + The 'After-First-Talk'
On 7PHP.com today there's a new interview posted around the first ever Nomad PHP user group meeting that featured Rob Allen. The interview spans a few different people - the organizer, the speaker and three of the people in attendance.
Wednesday 22nd May 2013, NomadPHP hosted their first talk which was about "Zend Framework 2″ - a talk by Rob Allen. I even announced a two-ticket giveaways which was made possible by NomadPHP. In this article you'll find short interviews which will showcase the opinion, feedback and suggestions from the NomadPHP organizer (Cal Evans), Rob Allen (The Speaker) and three attendees - two of which were the 7PHP Ticket winners.There's lots of good information and feedback in the interview and if you're at all interested in the Nomad PHP (virtual) user group, you should definitely give it a read. There's information from Cal Evans (the organizer), Rob and the three attendees - David Weinraub, Peter Kokot and PJ Hagerty with their own feedback on the event.
Link: http://7php.com/nomadphp-interviewSherif Ramadan: Password Hashing And Why People Do It Wrong
In a recent post to his site Sherif Ramadan looks at the topic of password hashing and why most developers are (still) doing it wrong. He notes that "fixing the people" and their mindset about hashing/salting is much harder than just fixing the code.
Beyond just writing code I also have to solve some very tough problems on a regular basis. Some of which don't stem from code at all, but from the people behind the code. Fixing code is easy for me (computers just do what I tell them to do), but fixing people proves to be a lot more challenging. Unfortunately some people are of the mindset that they aren't wrong simply because they've never been proven wrong before. To some people being proven wrong goes beyond just words. Some of us are a lot more stubborn than others and so explaining something may not be enough. This is called the wisdom of humility.He points out that even those that immediately think "rainbow tables" when they think about md5 hashing are behind the times. Most processing methods, including the use of a GPU, can be used much more effectively and don't require the overhead of the large tables. He illustrates with a "random" md5 generator that outputs around 916 million variations. With a GPU running 4k million per second, this kind of cracking won't take long. He also talks about salts and how they can help the situation - but not just append it, hash with it.
It's usually the result of several underlying factors that people end up making poor choices about security. Some times it's due to incompetence. Other time it's due to politics. Whatever the reasons are they are never excusable, because there are better alternatives out there and it's not as though they are more difficult or less available than others. So there really are no good reasons [not to do it] here. Link: https://sheriframadan.com/2013/05/password-hashingAndrew Podner: Functional Testing to Improve Quality Assurance (part 2)
Andrew Podner has a posted the second part of his series looking at functional testing in PHP applications with Selenum.
In the first post about functional testing, we went through the basics of what functional testing is and how it complements and differs from other types of testing used for software quality assurance. This time, I will spend some time talking about using functional testing in a practical sense to set up a testing suite for a web based software project. [...] Each of these can provide a powerful means of performing automated functional testing and you should select your tool of choice based on what works best for you. I typically find myself using Selenium for functional testing, but again, I would encourage you to look at each available option out there and select the best fitHe walks you through the installation of the Selenium Firefox plugin, some of the basics of its use and how to create and run a simple test. He also looks at a slightly more complex example - filling in a form and validating the resulting page.
Link: http://unassumingphp.com/functional-testing-to-improve-quality-assurance-part-2

