Three Devs & A Maybe Podcast:
The First Q&A Show with Justin DeLucia
July 31, 2014 @ 12:29:54
voice your opinion now!
The Three Devs & A Maybe podcast has posted their latest episode with guest Justin DeLucia. In this new episode they try out something different - a full, dedicated Q&A episode.
This week we have good friend of the show Justin DeLucia on to help host our first dedicated Q&A episode. Not only that, but Fraser is back! along with some crazy adventures that he discusses since his last time on the show. We have been fortunate to receive many questions throughout the past couple of weeks, and thought it would be good to release the answers as a dedicated show. Topics discussed include, breaking into the industry, the PDO vs. Mysqli debate, bespoke vs. off-the-shelf CMS debate and what to consider when building a Web API.
Other topics mentioned in this latest episode include: the Doctrine project, mutual recursion, Laravel Forge and Phil Sturgeon's book Build APIs You Won't Hate. You can listen to this latest episode either through the in-page player or by downloading the mp3 directly. If you enjoy the show, consider subscribing to their feed too.
SitePoint PHP Blog:
Using Guzzle with Twitter via Oauth
July 31, 2014 @ 10:54:01
voice your opinion now!
Continuing on with his series about using the Guzzle PHP HTTP library, Miguel Ibarra Romero is back with this new post showing how to connect your PHP application, via Guzzle, to the Twitter OAuth protected service.
In a previous article, we found out about Guzzle and how it can aid us in the task of establishing communication with third party APIs over HTTP. We used it to get the output of a random number generator and for basic interaction with Github's API. [...] While interacting with Github's API we discovered that it supports basic authentication (sending plain username/password). But what if the API we want to use just offers OAUTH authentication?
He shows how to use Guzzle's own OAuth subscriber to make a basic connection to the API. He walks you through the installation of the subscriber (via Composer) and an example of its use. He explains each part of the code, giving a little background on where it fits into the OAuth request and where to put your API secret and key to make the connection work. Finally, he includes the code to handle the callback once the OAuth request is successful, grabbing the token data and adding it to the user session.
Master Zend Framework:
Accessing ServiceManager Services in Controller Plugins
July 31, 2014 @ 09:43:49
voice your opinion now!
Matthew Setter has posted another new tutorial to his Master Zend Framework site today showing you how to access ServiceManager services in controller plugins. Controller plugins are a Zend Framework feature that allows certain events to trigger the plugin code during the lifetime of the controller.
I've seen some questions on Google+ and StackOverflow of late, regarding how to get access to the Zend Framework 2 database adapter, along with other ServiceManager-defined services, in a custom controller plugin. This type of setup can come in handy for a number of situations. You may want to access services such as caching, logging or databases and want to provide a simple interface for doing so. People seem really interested in how to do it, but how to get access to services from the ServiceManager doesn't seem to be as clear as it could be. Gladly, there's not much involved in actually doing it.
He shows you how to create a plugin for an existing module, creating the two needed classes and adding a new function to configure it. He starts with the plugin factory that can be used to generate an instance of the plugin. Next is the plugin class itself that extends the abstract plugin and controller plugin classes. The required database adapter is injected into it via a constructor injection. Finally, in the Module.php configuration, he creates a "getControllerPluginConfig" method that registers the new plugin and points to its class. A screencast is also provided showing the active development of the code.
Packagist Latest Releases for 07.31.2014
July 31, 2014 @ 08:03:49
voice your opinion now!
Recent releases from the Packagist:
- teepluss/hmvc (1.0)
Laravel 4 HMVC.
- teepluss/api (v1.0.2)
Laravel 4 Internal Request (HMVC)
- winzou/state-machine (0.1.1)
A very lightweight yet powerful PHP state machine
- werx/config (0.3.0)
Use environment-specific configuration files in your app.
- sdboyer/gliph (0.1.7, 0.6.2)
A graph library for PHP.
- karwana/messageformat (1.2.0)
- waspframework/waspframework (v4.0.0-beta)
A PHP full-stack framework, small, fast, simple, like a wasp.
- jacobemerick/kmeans (1.0.0)
k-means clustering implemented in PHP
- heyday/silverstripe-cacheinclude-manager (0.1.1, 0.1.0)
- impactki/impactki-php-api (1.0.0)
PHP library for connecting to the ImpactKI API
- shina/control-my-budget (0.7.2)
Control My Budget
- elnebuloso/bundler (5.3.0, 5.2.2, 5.2.1, 5.2.0)
bundling files n' stuff
- mikegrace/googleplaces (0.2.0)
Google Places API
- elnebuloso/phing-commons (6.3.0)
phing commons build stack
- buskamuza/product-community-edition (0.1.0-alpha93)
eCommerce Platform for Growth (Community Edition)
- ivette/utils (v2.2.0)
Ivette Framework utilities
- dominionenterprises/util (v1.6.0)
A collection of utility classes
- thujohn/twitter (1.2.0)
Twitter API for Laravel 4
- laracasts/commander (1.3.8, 1.3.7, 1.3.6, 1.3.5, 1.3.4)
Commands and domain events in Laravel
- threadmeup/slack-sdk (1.1.3)
- pubnub/pubnub (v3.6.0)
The Only Global Network For Real-Time Data -- PubNub!
- koine/decorator (0.9.1)
Decorator for PHP Objects
- league/geotools (0.4.0)
Geo-related tools PHP 5.3 library
- mighty-code/phalcon-user-plugin-2 (0.4.1)
User plugin for Phalcon PHP framework
- avisota/contao-message-element-event (2.0.1)
The event message element.
- avisota/contao-message-element-news (2.0.1)
The news message element.
- emacros/emacros (1.0.2)
The Extensible Macros Library for PHP
- avisota/contao-message-element-article (2.0.1)
The article message element.
- avisota/contao-core (2.0.2)
Avisota newslettersystem for contao
- suitetea/modularlaravel (0.2.2)
Allows you to organize Laravel code modularly.
- vu/amqp-carapace (0.1.0)
PHP Wrapper for AMQP
- thunderwolf/tw-subscription-plugin (1.4.5)
symfony 1.x Thunderwolf Subscription plugin
- elnebuloso/flex-random (2.0.2, 2.0.1)
multiple generators for random content
- elnebuloso/flex-file-selector (1.1.2, 1.1.1)
selecting files by patternsets
- takeatea/tea-theme-options (v184.108.40.206, v1.4.0)
- cubex/framework (0.1.1)
- nqxcode/lucene-stemmer-en-ru (v1.0.1, v1.0.0)
ZendSearch morphology token filter for english and russian words.
- adamgoose/commander (1.0.1)
Commands and Domain Events
- c15k0/psfs (v0.2)
Php Simple Fast & Secure
- paypal/sdk-core-php (v1.5.4)
PayPal Core SDK for PHP
- openwebsolns/soter (0.9.1, 0.9.0)
PHP Input Validation Library
- gaillard/mongo-lock (v2.0.0)
Distributed multi-reader lock using MongoDB
- rollbar/rollbar (v0.9.7)
Monitors errors and exceptions and reports them to Rollbar
- bkwld/croppa (3.3.1)
Image thumbnail creation through specially formatted URLs for Laravel
- nqxcode/lucene-morphofilter-en-ru (v1.0)
ZendSearch Lucene morphology filter for english and russian words.
- openwebsolns/owsession (0.9.1, 0.9.0)
OOP wrapper for PHP Sessions
- backboneit/contao-selectri (2.0.2)
A selection widget for large structured option sets.
- bit3/contao-doctrine-dbal (1.1.2)
Doctrine DBAL Bridge for Contao Open Source CMS
- contao-community-alliance/dc-general (2.0.0-beta16)
Universal data container for Contao
- winmillwill/settings_compile (2.1.0)
- entraigas/slimdb (v1.2.2)
Slim Database, a wrapper around pdo
- trntv/yii2-starter-kit (1.0.1)
Yii 2 Starter Kit Application Template
- koine/query-builder (0.9.5)
Query Builder - Making SQL composing easier
- foovendor/module-one (0.1.1, 0.1.0)
- elcodi/bamboo-store (v0.1.14)
Bamboo Project, an ecommerce built on Elcodi
- adamlundrigan/ldc-user-profile (1.1.1, 1.1.0)
User profile extension for ZfcUser
- drupal/tangler (0.1.3)
- umisoft/umi.framework (1.0.2)
UMI.Framework Version 1
- techdivision/servlet (0.6.3, 0.6.2)
Servlet package default implementation.
- jb/yahooweatherapibundle (0.6, 0.5.2, 0.5.1)
Jb YahooWeatherApi Bundle for Symfony2
- elcodi/bamboo-fixtures (v0.1.14)
- alexisducastel/cloudy (1.0.0)
Cloud providers api abstraction
- jwage/purl (v0.0.6)
URL Manipulation for PHP 5.3
- alexisducastel/vmwarephp (1.0.0)
Vmware vSphere bindings for PHP
- echo-it/laravel-jsonapi (v1.2.2, v1.2.1)
- raoul2000/yii2-jcrop-widget (1.0.0)
This extension is a wrapper for the jQuery Image Cropping Plugin (jcrop)
- elcodi/elcodi (v0.1.14.1)
Barebones Ecommerce functionality for Symfony
- elcodi/cart-coupon-bundle (v0.1.14.1)
Elcodi Cart-Coupon bridge component
- thibaud-dauce/sql-view (v0.1)
Create SQL view
- otak/maestro (1.0.37, 1.0.36, 1.0.35, 1.0.34, 1.0.33, 1.0.32, 1.0.31, 1.0.30)
Next-generation MVC Micro-Framework for PHP5.3+
- ministryofjustice/opg-core-public-domain-model (220.127.116.11, 18.104.22.168, 22.214.171.124, 126.96.36.199)
Domain model for the OPG Core project
- openwebsolns/myorm (v0.9.1)
Sensible MySQL ORM
- henderjon/chevron-kernel (v0.1.1)
a subset of tools for application development
- contao-community-alliance/composer (0.13.2)
composer integration into the contao cms
- block8/phpci (1.3.0)
Simple continuous integration for PHP projects.
- duncan3dc/sql-class (1.3.2, 1.3.1)
A group of classes that provide a simple database abstraction layer, and an on disk caching facility
- sjparkinson/static-review (1.1.2)
An extendable framework for version control hooks.
- liip/imagine-bundle (1.0.4, 1.0.3)
This Bundle assists in imagine manipulation using the imagine library
- phobetor/rabbitmq-supervisor-bundle (1.1.2)
Symfony 2 bundle to automatically create and update supervisor configurations for RabbitMQ consumer daemons
- omerta-game-ltd/ponionoo (0.2, 0.1)
A php api for onionoo, it allows you to get all tor related information
- esteit/catalol-api-client (1.3.1)
- marcojanssen/silex-rest-service-providers (0.6.0)
Package containing several services for silex/rest skeleton
- gwtphp/gwtphp (1.0.0)
The Google Web Toolkit RPC protocol server-side application, implemented in PHP. Strives to be a drop-in replacement.
- networking/init-cms-bundle (2.1.3)
This Bundle is a basic cms based on symfony
- nicolas-brousse/twig-integrator-kit (v0.1.5)
A minimalist application to make integration with twig
- voilab/tinycms (0.1.1)
Small textfile based CMS
- apple/apn-push (v2.1.2)
Push notifications to Apple devices
- om/events (v0.0.8)
Super simple event dispatching library for PHP
- netzmacht/contao-bootstrap (0.2.4)
Provides modules, content elements and templates for integrating Bootstrap into Contao
- metanet/form-handler (v1.0.1, v1.0.0)
Library for an easy handling of web based forms written in PHP.
- m6web/redis-mock (v2.0.0)
Library providing a PHP mock for Redis
- ice/form-bundle (1.11.4, 1.11.3)
Bundle providing forms and business logic for course registrations.
- bit3/contao-theme-plus (4.4.1)
Theme+ for Contao OpenSource CMS
- cargomedia/cm (1.56.5, 1.56.4)
- imsamurai/cakephp-monitoring-plugin (2.0.3)
Use it if you want to wrap model methods with cache
- psecio/jwt (1.3)
A JWT (JSON Web Token) Encoding & Decoding library
- fterenzani/lazypdo (1.0.1)
Just a bit of sugar in PDO
- selmonal/imagemanager (1.1.0)
- ultractiv/lean (0.0.6.2)
The PHP framework for simple, REST API backend. It gets out of your way, so you can get your work done.
- ryannielson/meta (1.1.0)
A package that makes it easy to add meta tags to your views. Includes easy Laravel integration.
- trifs/di (v1.0.0)
A simple dependency injection container
- opensoft/simple-serializer (1.0.6)
- bycedric/inquiry (v0.2.4)
A Laravel URI syntax parser, designed for REST apis.
- kunstmaan/node-bundle (v2.3.24)
All websites need pages(we call them nodes) but you probably don't want to spend too much time building them. Plus they should look pretty and contain the right content and that takes time. We make sure you have to spend less time managing your pages but still offer you flexibility so you can focus on more important tasks and don't have to worry about it.
- 3fs/di (v1.0.0)
A simple dependency injection container
- h3r2on/acs (1.0.0-alpha)
A package for inteacting with Appcelerator Cloud Services
- tomaszdurka/mocka (0.8.0)
- wikimedia/assert (v0.1.0)
Provides runtime assertions
- aboutyou/app-sdk (0.9.8)
ABOUT YOU app SDK
- becklyn/page-tree-bundle (v1.4.1)
This bundle provides a simple implementation of a pagetree
- claroline/core-bundle (3.1.4)
Claroline core bundle
- itbz/fpdi (1.5.2-patch2)
Unofficial PSR-0 compliant version of the FPDI library
- understand/understand-laravel (v0.0.4)
Laravel service provider for Understand.io
- roberto/hello (v1.0.0)
- aotd/mystem (3.0.1)
Yandex Mystem wrapper
- fml/notification-bundle (v1.1, v1.0)
Library which help you to send notification via different channels wrapped to Symfony2 bundle
- fml/notification (v1.3)
Library which help you to send notification via different channels
- lemonweb/sisow-api (1.1.0)
Sisow API client library for PHP
- reynholm/file-utils (v1.3.0)
A set of utils for working with files easily
- genouest/blast-bundle (1.5)
This bundle allows you to run BLAST+ from a convenient web interface.
- regeda/castel (0.2.0)
Castel is a fast Dependency Injection Container for PHP 5.3
- uestla/twigrid (4.0.2)
Experimental DataGrid for Nette Framework
- qafoolabs/profiler (v0.5.5)
Simple library that wraps Xhprof profile collection and sends to Qafoo Profiler
- elfet/deployer (v1.1.1)
- vivait/common (2.0.1, 1.1.3)
Common interfaces used for Viva IT bundles
- akeneo/batch-bundle (0.2.2)
Akeneo Batch Bundle
- redaxmedia/gsp (2.2.3)
Grunt Survival Pack
- fiv/parser (1.0.7)
- nelmio/api-doc-bundle (2.7.0)
Generates documentation for your REST API from annotations
- ichthus-soft/bible_ref (1.1, 1.0)
- kunstmaan/pagepart-bundle (v2.3.12)
The KunstmaanPagePartBundle forms the basis of our content management framework. A page built using a composition of blocks names pageparts. These pageparts allow you to fully separate the data from the presentation so non-technical webmasters can manage the website. Every page can have it's own list of possible pageparts, and pageparts are easy to create for your specific project to allow for rapid development.
- zfr/zfr-stripe (v1.10.0)
PHP library for interacting with the Stripe REST API
- timesplinter/tsfw-session (v0.2.0)
A library to provide an OO interface for PHPs session handling
- hieu-le/active (1.2.1)
The helper class for Laravel 4 applications to get active class base on current route
- simpleapi/core (v0.6.4)
The core of SimpleAPI framework
- liip/process-manager (1.0.3)
Provides a simple locking mechanism based on UNIX process id's written to a PID file.
- yoozi/golem (1.0.4)
PHP development toolkit for Yoozi RD team.
- yoozi/notification (1.0.4)
A simple library to wrap common notification transports, such as email, socket.io and etc.
- kozz/collection (1.0.0)
Powerful Data Storage based on SplDoublyLinkedList
- bgcc/sf-bootstrap-propel-admin-theme-plugin (1.0.1)
A bootstrap based admin generator theme for symfony 1 with propel 1.6+
- anlutro/l4-core (0.16.26)
Core L4 functionality.
- martin-kozianka/contao-favoriten (0.3.4)
- laraiba/resource (v0.0.3)
PHP library which provides Al Quran for your application
- webpay/webpay (2.1.1)
Bindings of WebPay API
- phpskeleton/component (1.0.0)
Base structure for a PHP Component
Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM
July 30, 2014 @ 12:26:51
voice your opinion now!
The Kinsta.com blog has a new post with the results of some benchmarking they've done around WordPress comparing PHP 5.5, PHP 5.6 (PHPNG) and HHVM in response time (well, time taken for the request).
If you remember we wrote an article a good couple of months ago when WordPress 3.9 came out that HHVM was fully supported beginning with that release, and we were all happy about it. The initial benchmark results showed HHVM to be far more superior than the Zend engine that's currently powering all PHP builds.
[...] Obviously you have to compromise based on your (or rather your sites') needs but is it worth it? How much of a performance gain can you expect by switching to HHVM? [...] Today I finally took the time to set up a test environment and do some tests to compare a couple of different builds with a fresh out of the box WordPress install and one that has a bunch of content added plus runs WooCommerce!
The testing was all done locally on virtual machines (using Vagrant setups) and two different kinds of test WordPress installations. They share the results in the post, showing the differences between the HHVM installations and the plain PHP ones. The results also show the differences between having the opcode cache on and off. Curious to see how it would perform outside of a local system, they also pushed the same configurations out to a DigitalOcean instance with some slightly different results.
PHP Specification in Development
July 30, 2014 @ 11:54:25
voice your opinion now!
In a recent message to the PHP internals mailing list Sara Golemon has announced the development of a PHP specification, a document formally defining the interfaces and structure of the functionality of the language. The effort is being spearheaded by a group at Facebook.
We (As in PHP) have been talking about making a spec for the PHP language for a LONG time. With PHPNG around the corner, the need for a formal spec is even more important so that we can reliably ensure that PHP.Next matches PHP 5.6's behavior as much as possible. Meanwhile, other implementations of PHP (like HHVM) should be as spec compliant as possible so that we don't see the language bifurcate. To that end, we (as in Facebook), have been putting together a formal language spec for PHP (using PHP 5.6 as the source of truth) along with an additional conformance test suite (which compliments Zend/tests).
An initial version (a "sneak peek") has already been posted providing a great start to the effort. There's already been a lot of support for the project in the community and some of the concerns around workflow and maintenance are already starting to be addressed.
SitePoint PHP Blog:
July 30, 2014 @ 10:39:27
voice your opinion now!
On the SitePoint PHP blog there's a new tutorial posted helping you understand OpCache, the caching engine built into PHP versions 5.5 and above. This cache isn't designed to cache data or other content, though. An OpCache caches "opcodes" when a script is executed.
PHP in version 5.5 comes with a caching engine built-in - OpCache - which stores precompiled script bytecode in the memory. If you're familiar with APC or Xcache, you will already know how such engines work. As each PHP script is being compiled at runtime, a part of the execution time gets used for transforming the human readable code into code that can be understood by the machine. A bytecode cache engine like OpCache, APC or Xcache does it only once - during the first execution of a specific PHP file. Then the precompiled script is being stored in memory, which should lead to performance boosts in your PHP applications.
The remainder of the article is a series of answers to some common questions about using the cache, what it will do for your applications and some tools to use for tuning and status updates:
- Is OpCache worth installing at all? What speed boost can I expect?
- I already use APC cache. Should I migrate to OpCache?
- How to check if OpCache is actually caching my files?
- Is there any framework-specific config that I should set?
- I keep my app config in a PHP file. Can I prevent it from being cached?
- How can I run both a development and a production environment on a single server where OpCache is enabled?
Don't see your event here?
Let us know!