- Geshan Manandhar: 5 PHP development improvements rediscovered in 2013
- Community News: php[tek] Conference Schedule Announced
- NetTuts.com: SOLID: Part 3 - Liskov Substitution & Interface Segregation Principles
- Matthew Turland: How to be a Great Developer
- php[architect]: January 2014 Issue Released - How to Be a Better Developer
- SitePoint PHP Blog: HHVM vs Zend Engine in PHP 6
- Dutch Web Alliance: The definitive remote debug and unittest with PHPStorm guide: part 7
- David Makin: Creating a simple REST application with Silex part 2
- Erika Heidi: Vagrant Usage Research
- NetTuts.com: Setting Up a Local Mirror for Composer Packages With Satis
2014年1月31日星期五
Site News: Popular Posts for the Week of 01.31.2014
Community News: Packagist Latest Releases for 01.31.2014
- oyejorge/less.php (v1.6.1rc2)
PHP port of the Javascript version of LESS http://lesscss.org - apinstein/jqjobs (v1.0.14)
Async job manager for PHP. - thefold/lib (20140131.1)
Library for TheFold - sonata-project/page-bundle (2.3.5)
Symfony SonataPageBundle - padam87/rasterize-bundle (v1.0.0)
A bundle to rasterize web pages with PhantomJS for Symfony2 - kisma/kisma (0.2.13, 0.2.12, 0.2.11, 0.2.10)
PHP Utility Belt - cerbero/oauth (1.1.1)
OAuth package for Laravel 4. - zoopcommerce/shard-module (2.0.3)
Zend Framework 2 Module for Shard - isotope/isotope-documents (1.0.1)
user friendly documents for delivery notes and invoices for Isotope eCommerce 2.X - nlp-tools/nlp-tools (v0.1)
NlpTools is a set of php 5.3+ classes for beginner to semi advanced natural language processing work. - comur/image-bundle (0.0.3, 0.0.2)
Symfony ComurImageBundle - codeception/codeception (1.8.2)
BDD-style testing framework - helthe/turbolinks (1.2.1, 1.2.0)
Helthe Turbolinks Component - helthe/turbolinks-bundle (1.1.1, 1.1)
Turbolinks bundle for Symfony2 - renegare/skip (v0.2)
Simple configuration layer around silex framework. With the aim of reducing spin up times with 'green field' projects. - pixel418/ubiq (v0.5.0)
Functions for readable treatment of string, array & object - shone/scanner (v1.0.4)
Software Version Scanner - saxulum/saxulum-console (1.2.0)
Saxulum Console Provider - saxulum/saxulum-route-controller-provider (1.0.4, 1.0.3)
Saxulum Route/Controller Provider - saxulum/saxulum-translation-provider (1.0.3, 1.0.1)
Saxulum Translation Provider (yaml) - saxulum/saxulum-classfinder (1.0.1, 1.0.0)
Saxulum ClassFinder - dreamfactory/service-oauth (0.4.6)
DreamFactory Oasys(tm) Open Authentication System - robertboloc/rbcomment (v1.3.0)
Comments for Zend Framework 2 applications - seeclickfix/laravel-seeclickfix-api (0.1.2)
SeeClickFix Laravel API - seeclickfix/seeclickfix-php-sdk (0.1.2)
SeeClickFix PHP SDK - egeloen/ckeditor-bundle (2.2.0)
Provides a CKEditor integration for your Symfony2 Project. - mxc-commons/mxc-generics (v0.2.0)
Zend Framework 2 Module that provides some useful fundamental assets for reuse and convenience. - kkamkou/sms-online-api (1.0.3)
API for the smsonline.ru messaging service - mongo-like-query/mongo-like-query (0.1.0beta1)
Library for querying arrays in mongodb like style - data-values/javascript (0.3)
DataValues implementation in Javascript - bonndan/release-manager (0.4.3)
Release Manager for semantic version releases of composer packages and projects. - phpunit/php-text-template (1.2.0)
Simple template engine. - presta/sonata-navigation-bundle (1.0.0)
PrestaSonataNavigationBundle : Allow you to customize your SonataAdmin Navigation - twbs/bootstrap-sass (v3.1.0)
bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications. - bread/http (v1.4.1)
Bread HTTP library - bread/media (v0.1.2)
Bread media library - patricktalmadge/bootstrapper (4.1.1)
Twitter Bootstrap markup generator - twitter/bootstrap (v3.1.0)
Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development. - memeoirs/paymill-bundle (v0.2.0)
Paymill payments for Symfony apps - backboneit/image (1.0.0, 2.0.0)
A wrapper around gd lib for image processing - packettide/bree (v1.1.0, v1.0.0)
A form layer for Eloquent which supports a variety of field packages - twilio/sdk (3.12.4)
A PHP wrapper for Twilio's API - backboneit/contao-mod-article (2.3.0)
Various modules to display articles in a way so that problems that occur when using Insert-Tags are avoided. - ivan-novakov/zf2-openid-connect-server-module (0.7.4, 0.7.3)
OpenID Connect server implementation in PHP as a Zend Framework 2 module - soenkelange/live_cake (1.0.1)
LiveCake is a plugin for CakePHP using LiveReload - mightydes/mighty-php (1.0.0)
PHP 5.4 Framework - torann/currency (0.1.2)
This provides Laravel 4 with currency functions. - webvariants/babelcache (v2.0.3)
Generic caching library with namespace support - backboneit/contao-layoutusage (1.0.0)
Shows on which pages the layouts are used - dutycalculator/dutycalculator-php-sdk (1.0.0)
DutyCalculator API PHP SDK - mlpz/mailchimp-bundle (v1.2)
mailchimp bundle - serhioromano/bootstrap-calendar (0.2.2)
Bootstrap full view calendar. - alexwhitman/view-themes (1.1.0)
Provides support for themed views in Laravel. - andydune/rzn-view-component (v0.3.0)
View component module for ZF2. - alexwhitman/enhanced-exception-handler (1.1.0)
Enhanced exception handler for Laravel - cordoval/gush (v1.3.2)
Rapid workflow for project maintainers and contributors - markwilson/three-legged-oauth (0.1.0)
Oauth app base - imbo/imbo-zf2 (2.0.0)
Imbo module for Zend Framework 2 - g4/storage (0.1.4)
G4 file storage and manipulation package - gridguyz/core (0.7.1)
Core modules for Gridguyz CMS - yfix/yf (1.3.5)
YF PHP Framework - imbo/imboclient (1.0.0)
Client for Imbo servers written in PHP - codeblanche/web (1.4.3)
PHP Web Essentials - menatwork/registration_info_mailer (3.0.0)
Send a customized email if an new user register or activate an account or the login flag of an account has changed. - misd/phone-number-bundle (v1.0.1)
Integrates libphonenumber into your Symfony2 application - frenkynet/flysystem (0.2.2)
Filesystem abstraction, but easy. - openbuildings/jam (0.4.43)
Small but feature rich ORM, has extensible models and builders, baked in upload functionality, supporting multiple backends (rackspace, ftp), polymorphic associations, form builders, nested forms, validators - native5/native5-sdk-services-php (0.3.6)
PHP Services SDK for invoking Native5 Hosted Services. - enlitepro/russell-interpreter (v1.0.4)
- nodge/yii2-eauth (2.1.3)
Yii2 EAuth Extension. EAuth allows to authenticate users with accounts on other websites (Google, Facebook, Twitter, etc). - willdurand/propel-statemachine-behavior (1.0.0)
Adds a finite state machine to your model. - willdurand/email-reply-parser (2.0.1)
Port of the cool GitHub's EmailReplyParser library in PHP 5.3 - eloquent/pops (4.0.1)
PHP object proxy system. - piwik/piwik (2.0.4-b6)
Open Source Real Time Web Analytics Platform - dreamfactory/package-installer (1.3.16)
DreamFactory Services Platform(tm) Package Installer - titon/mvc (0.9.0)
The Titon MVC package adds support for the Model-View-Controller paradigm by packaging the external Model, View, Controller and Route packages into a single package. This single MVC package has full application support. - titon/controller (0.4.0)
The Titon controller package provides controllers and actions to handle the HTTP request and response. - kmfk/hateoas-bundle (0.1.1)
Symfony2 Bundle to add Hateoas compliant urls to JMS Serializer
Benjamin Eberlei: SOAP and PHP in 2014
Benjamin Eberlei has a new post today looking at the future of SOAP in PHP for the upcoming year. In his opinion, despite negative comments and harassment the technology gets, it still has the advantage over REST.
These last years REST has gotten all the buzz, everybody seems to be using it and there are lots of talks about REST on conferences. SOAP used to be big for building APIs, but everybody seems to hate it for various reasons. I have used SOAP in several projects over the last 10 years and this blog post is a random collection of information about the state of SOAP in PHP 2014, as a reminder to myself and to others as well. Why care about SOAP in 2014? For server to server (RPC) communication it still has massive time to market and stability benefits over REST.
He points out some things REST lacks like a standard to describe endpoints and a way to automatically generate clients in any language. He then gets into some of the basics of SOAP and PHP's included functionality. He shows some of the configuration options you can use for things like debug output, exceptions and custom exception handlers. He recommends the Zend Frameworks SOAP Autodiscovery for generating WSDLs and the XSD-TO-PHP library to create objects from a well-defined WSDL. He covers the different modes you can use to "talk SOAP" and using the ZendSoapClientLocal to make a request without the need of a web server.
Link: http://www.whitewashing.de/2014/01/31/soap_and_php_in_2014.html
Christian Weiske: PHP manual viewers
In this latest post to his site Christian Weiske shares three PHP manual viewers he finds useful (besides the actual PHP.net manual) and can be used offline.
The PHP documentation is really good. It covers almost all parts of the language and is filled with examples that help you grasp a function's meaning and usage really fast. And since PHP is a grown language, it's function naming and parameter order are often confusing - requiring you to look up the manual more often.
The three he suggests are:
- pman - PHP manual pages
- the xCHM version of the manual
- Zeal, which also has support for lots of other docs from other languages/tools
Link: http://cweiske.de/tagebuch/php-man-viewer.htm
Pádraic Brady: PHP 5.6 and SSL/TLS: Getting Better But Will PHP Programmers Actually Use It?
In his latest post Pádraic Brady looks at a new addition to PHP (well, to be included in the next release) related to the SSL/TLS handling it provides in streams. He's happy to report that things are improving. This commit integrated an RFC allowing for TLS perr verification in PHP streams.
The RFC reverses PHP's course and provides PHP streams with defaults that enable both peer verification and host verification. The patch implements the RFC and it lets PHP leverage the local system's own certificate stash (e.g. Debian's ca-certificates) where possible to avoid PHP having to distribute a bundle of its own and while also assisting in backwards compatibility. [...] Once we have a PHP streams/sockets system with a passable level of default security, the rest will be left to programmers on the ground to change their practices.
With this new functionality coming in PHP 5.6, he strongly encourages developers to change how they're currently doing things and embrace this new verification to keep their code safer.
Link: http://blog.astrumfutura.com/2014/01/php-5-6-and-ssltls-getting-better-but-will-php-programmers-actually-use-it/
2014年1月30日星期四
Site News: Blast from the Past - One Year Ago in PHP
- Aaron Pollock: Setting up a PHP development environment on a VPS
- Phil Sturgeon: PHP 6: Pissing in the Wind
- Patrick Allaert: Composer: speeding up class autoloading
- PPI Framework Blog: Tutorial: GeoLocation with FourSquare and Google Maps
- MaltBlue.com: Zend Framework 2 ServiceManager - Web Application Development Simplified
- PHPMaster.com: Dependency Injection with Pimple
- Reddit.com: Moving a large existing project onto a framework
- Eran Galperin: The Real Cost Of Software Development
- Netcraft.com: PHP just grows & grows
- Reddit.com: Looking to move from senior to lead developer. What should I know?
- Maarten Balliauw: Running unit tests when deploying to Windows Azure Web Sites
- Michael Nitschinger: Benchmarking Cache Transcoders in PHP
- Andrew Podner: Intro to PHP Comments and Docblocks
- Symfony Blog: Symfony Live 2013 tour: time to start the new season!
- Joshua Thijssen: Custom symfony2 config loader
Community News: Packagist Latest Releases for 01.30.2014
- titon/route (0.11.0)
The Titon route package adds support for dynamic route handling and mapping. - dreamfactory/package-installer (1.3.15)
DreamFactory Services Platform(tm) Package Installer - whitecap/router (0.3.1)
A small and efficient web routing library. - patkruk/laravel-cached-settings (1.0.6)
A simple cached config container for Laravel 4 - kmfk/hateoas-bundle (0.1.0)
Symfony2 Bundle to add Hateoas compliant urls to JMS Serializer - piwik/piwik (2.0.4-b5)
Open Source Real Time Web Analytics Platform - arron/testit (1.3.2)
Addon for PHPUnit to easily mocking dependencies and testing calling them. - superdweebie/sijit (0.2.2)
Extensions for the dojo js lib - stripe/stripe-php (v1.11.0)
Stripe PHP Library - dg/mysql-dump (v1.2.0)
MySQL database dump. - crisu83/yiistrap (1.2.3)
Twitter Bootstrap for the Yii PHP framework. - components/foundation (5.0.3)
The most advanced responsive front-end framework in the world. - shavy/s-array (v1.0.1, v1.0.0)
A Super Array for PHP. Allows more method calls - fol/core (v0.10.1, v0.10.0)
The core of FOL framework - g4/storage (0.1.3, 0.1.2, 0.1.1, 0.1.0)
G4 file storage and manipulation package - saiffil/infusionsoft (1.1)
Infusionsoft iSDK for Laravel 4 - ofeige/opf (0.1)
little small oo php framework, fast in dev, fast in running - johnstyle/sjo (v3.1.1)
PHP 5 MVC Framework - zeropingheroes/lanager (v0.2.6)
A LAN party management web application - yepsua/generator-bundle (v1.2.0)
The RICH CRUD Generator for Symfony2 - yepsua/menu-bundle (v1.0.0, v1.1.0)
An Extension of the KnpMenuBundle - yepsua/theme-bundle (v1.0.0, v1.1.0, 1.1.0)
This Bundle contains a pretty theme layout for Admin Applications. It Was Designed to be used with YepsuaSmarTwigBundle and YepsuaGeneratorBundle. - fightmaster/porpaginas-bundle (0.0.1)
Symfony bundle for the porpaginas beberlei/porpaginas. - pomander/pomander (0.4.2)
Deployment for PHP - nazar-pc/cstester (0.1.8)
CleverStyle Tester is simple tool to test your PHP applications - txgruppi/fw (v0.5.0)
FW is a Micro PHP Framework for simple applications - aws/aws-sdk-php (2.5.2)
AWS SDK for PHP - Use Amazon Web Services in your PHP project - saxulum/saxulum-translation-provider (1.0.0)
Saxulum Translation Provider (yaml) - pekkis/queue (v0.3.1, v0.3.0)
Queue abstraction library - levacic/mailto (1.0.1, 1.0.0)
A generator for "mailto:" links - lazyants/dynatree-bundle (v1.2.5)
Integration of jquery.dynatree.js in Symfony 2 - niels-nijens/failurehandling (2.0.0)
An error and exception handling library for PHP 5.3+ - ryprop/nife (0.0.1)
Modern, no-bullshit MVC framework for PHP - maximebf/debugbar (1.9.2)
Debug bar in the browser for php application - veridu/veridu-php (0.3.2)
Veridu PHP SDK - sibset/cache (v1.3.1, 1.3.0)
Common cache library - sankynet/lib-php (1.2.2)
SankyNet PHP Libraries - webignition/url-resolver (0.1)
Resolve a given URL to the URL it actually points to; follow 30X and meta redirects to achieve this - icap/wiki-bundle (v3.0.0)
Claroline wiki plugin from ICAP - lionel/galerie (v2.1.0)
Professional pictures galleries for the web and mobile devices. - easybib/silex-elastica (0.1.1)
A Silex Service Provider for Elastica - drzippie/pivotal-tracker-api (1.1.0)
Library that provides a PHP interface to interact with the PivotalTracker API V5 - pixel418/ubiq (v0.4.7)
Functions for readable treatment of string, array & object - openbuildings/jam (0.4.42)
Small but feature rich ORM, has extensible models and builders, baked in upload functionality, supporting multiple backends (rackspace, ftp), polymorphic associations, form builders, nested forms, validators - pieterb/webdav-php (1.0.2)
A library to create a webDAV server - niels-nijens/utilities (v2.0.0, 2.0.0)
Utility classes - andydune/rzn-view-component (v0.2.0, v0.1.0)
View component module for ZF2. - webcms2/webcms2 (v0.3.11)
WebCMS2 content management system for Nette framework. This package contains system libraries and admin module. - bit3/contao-domainlink (1.5.3)
Set of basic settings for Contao OpenSource CMS - backboneit/contao-trueurl (2.0.0)
Folderlike page alias' with different editing tools and an improved frontend page selection algorithmn. - indigophp/supervisor (v1.1.1)
PHP library for Supervisord - backboneit/contao-opengraph (3.0.0)
Define OpenGraph meta data in Contao - eloquent/constance (0.1.1)
PHP constants as enumerations. - frandieguez/panorama-php (1.0.3)
Wrapper class for accessing video services information in a standarized way - contao-community-alliance/composer (0.9-beta2)
composer integration into the contao cms - comur/image-bundle (0.0.1)
Symfony ComurImageBundle - kkamkou/sms-online-api (1.0.2)
API for the smsonline.ru messaging service - sonata-project/block-bundle (2.2.9)
Symfony SonataBlockBundle - thadafinser/zfc-datagrid (0.8.1, 0.8.2)
Zend Framework 2 Module that provides a datagrid for different datasources and output formats - matthiasnoback/microsoft-translator (v0.4.2, v0.4.1, v0.4.0, v0.3.1, v0.3.0)
Library for making calls to the Microsoft Translator V2 API - tasso/prototype (1.2.2)
Simple prototype-based programming for PHP - liip/imagine-bundle (v0.18.0)
This Bundle assists in imagine manipulation using the imagine library - eloquent/enumeration (5.0.1)
An enumeration implementation for PHP. - sammaye/mongoyii (3.4.0)
A Yii MongoDB ORM - eloquent/composer-npm-bridge (2.0.0)
NPM integration for Composer packages. - dunglas/php-socialshare (v0.1.4)
Retrieve social networks share counts and share links - zweer/images (v1.1.0)
Everything you need to manipulate images in PHP.
PHP Town Hall: Episode 18: PHPDBG, HHVM and Internals
The PHP Town Hall podcast has released their latest episode today - Episode #18, "PHPDBG, HHVM and Internals". This time the lineup includes Sara Golemon, a developer on the HHVM project, and Joe Watkins, a developer on the PHPDBG project.
Joe Watkins and Sara Golemon join Phil to make one hell of an episode. These two are not only core contributors to PHP, but are behind a lot of RFCs and decisions that make PHP considerably better. We talk about a whole bunch of awesome stuff, including progress of the named parameters RFC - and the chances of it making in, the new accepted PHP 5.6 feature PHPDBG and what it means for you, HHVM and its relationship to "The PHP", wether PHP should have a spec for implementations of the language, and a whole bunch of other stuff.
You can listen to this latest interview in a few different ways - you can either listen with the in-page player, download the mp3 or you can watch the video of the live Google Hangouts recording.
Link: http://phptownhall.com//blog/2014/01/29/episode-18-phpdbg-hhvm-internals/
SitePoint PHP Blog: Arbitrary Precision and Big Numbers in PHP
The SitePoint PHP blog has a new post by Taylor Ren looks at big numbers in PHP and the functionality it has to handle arbitrary precision via three modules - GMP. BC Math and php-bignumbers.
In this article, we will review the PHP capability to provide arbitrary precision number calculation / big integer calculation by reviewing 3 PHP modules: GMP, BC Math and php-bignumbers. We will demonstrate two real-world examples to see the powers/limitations of each. The first one will be calculating PI to arbitrary precision - well, for the sake of the article, we will restrict the precision, say, to 1000 digits; the second will be a simple demonstration on RSA encryption/decryption.
He briefly looks at how to get the tools installed (via at-get or Composer) and a sample script to ensure that they're all included correctly and working. He includes a comparison between the three libraries, listing both strengths and weaknesses relative to the others. He then gets a bit more in-depth and shows how to calculate PI with each option (code is on GitHub) and the results of the benchmarking. He also includes a second example of calculating the RSA algorithm based on their process.
Link: http://www.sitepoint.com/arbitrary-precision-big-numbers-php/
MaltBlue.com: Easy Setter Injection in Zend Framework 2
Matthew Setter has a new post today looking at setter injection of dependencies in a Zend Framework v2 based application. He shows how to do it via ServiceManager-aware interfaces.
For configuring objects, reused throughout the application, I've found it to be nothing short of amazing. With next to no code, one Module configuration setting, along with the magic of OOP, classes are suitably initialized throughout the application, without any hands-on configuration on my part. Whilst Zend Framework 2 is great without this. When you start using setter injection, it becomes so much more. In today's post, I'll take you through an example which uses setter injection to ensure that the AuthService, or authenticated user object is always available to a class and any of its descendants.
He walks you through a basic implementation, showing the creation of the "AuthAwareInterface" interface class and an implementation of it, the "CacheableTable". In the "CacheableTable" there's a setter and getter for the currently authenticated user. Using these he's able to configure the ServiceManager to get the AuthService instance from the service locator and inject it into the class. He also includes a word of warning to be careful with the injection you do use, pointing out that it can lead to difficult to track bugs and issues down the line.
Link: http://www.maltblue.com/zend-framework/easy-setter-injection-in-zend-framework-2
2014年1月29日星期三
Community News: Recent posts from PHP Quickfix
- PHP: rfc:removal_of_dead_sapis
#rfc #draft #remove #dead #sapi - Interview with Leanpub: A Year With Symfony | PHP & Symfony
#leanpub #interview #book #symfony - 4 HTTP Security headers you should always be using | ibuildings
#http #header #security - PEAR on PHP 5.5: could not extract package.xml
#pear #package #xml #extract - CodeIgniter is out and Laravel is In! - KillerPHP.com Blog
#codeigniter #laravel #compare #screencast - PHP: rfc:consistent-names
#rfc #conssitent #naming #standard - PHP Frameworks Day 2013 - Rasmus Lerdorf - YouTube
#frameworks #day #rasmuslerdorf #video - FOSRestBundle security issue with JSONP handler - Symfony
#fosrestbundle #symfony #security #jsonp
Community News: Packagist Latest Releases for 01.29.2014
- vihuvac/blueprint-bundle (1.0.0)
Symfony SonataBluePrintBundle - evolution7/grunt-usemin-bundle (0.3.1)
The GruntUseminBundle provides a Twig extension for using files processed with grunt-usemin when in production. - acquia/acquia-sdk-php (0.6.0)
The Acquia SDK for PHP allows developers to build applications on top of Acquia services. - orchestra/testbench (v2.1.1)
Laravel 4 Package Unit Testing Helper - 99designs/phumbor (0.1.3)
A minimal Thumbor library for PHP - mixpanel/mixpanel-php (2.6.1, 2.6, 2.5)
The Official PHP library for Mixpanel - packfire/fuelblade (1.2.2)
Packfire FuelBlade - Dependency Injection / IoC library for PHP - makesites/kisscms (2.1.0)
Content Management made Simple - symfonycontrib/link-button-bundle (v1.0.0)
Symfony2 form button as a link (ex. Cancel action). - guzzle/guzzle (v3.8.1)
Guzzle is a PHP HTTP client library and framework for building RESTful web service clients - guzzle/stream (v3.8.1)
Guzzle stream wrapper component - imsaintx/utils (1.0.1)
A useful, convenient and practical developer tool box. - mmoreram/gearman-bundle (v2.3.3)
Adds gearman support to your Symfony2 project - phy/cache-bundle (0.0.7, 0.0.6, 0.0.5)
Cache Bundle for Symfony2 that supports APC, Memcache, Memcached, Local, and Disk storage. - webcook/doctrine (v1.0.0)
Doctrine 2 ORM and Migrations addon for Nette Framework - pekkis/queue (v0.2.0)
Queue abstraction library - thadafinser/zfc-datagrid (0.8.0)
Zend Framework 2 Module that provides a datagrid for different datasources and output formats - dkplus/action-arguments (1.0)
Provides the ability to use variable action arguments. - dotblue/mandrill (v1.2.0)
OO wrapper above Mandrill API for sending e-mails - index0h/yii-phar (0.0.1)
Phar builder based on Yii2 - comnect/console (0.1.9)
php cli application package(kernel) - comnect/consoler (0.1.6)
php cli application package - ticketevolution/ticketevolution-php (2.1.2)
A PHP 5.3+ library for the Ticket Evolution API. - jfelder/oracledb (0.3.0)
Oracle DB driver for Laravel 4 - libra/twitter-bootstrap-assets (3.0.3, 3.0.2, 3.0.1)
Twitter Bootstrap assets for ZF2 projects - gourmet/common (0.1.2)
Gourmet Common Plugin for rapid CakePHP application development. - ac/kalinka-bundle (0.1.0)
Flexible authorization for your Symfony2 app - dispatch/dispatch (4.0.2)
a microframework/front-controller - ajgon/lint-pack (v1.1.0, v1.0.1, v1.0.0)
Various linters for your Symfony2 project - spescina/timthumb (1.0.0)
An image proxy for Laravel - spescina/seorules (1.2.0)
A tool for building seo rules in your Laravel projects - marcelog/pami (1.70.2)
Asterisk Manager Interface (AMI) client for PHP, event driven, object oriented - php-console/laravel-service-provider (1.1)
Service provider for integration PHP Console library with Laravel framework - prelude/prelude-dsn (0.1.4)
Dsn, pain-less adapter for PDO configuration - candycms/core (4.0.5)
Core elements for candyCMS. - asm/markdown-content-bundle (v0.1)
Symfony2 bundle for static markdown-file content management - php-console/php-console (3.1)
Server side PHP library for Google Chrome extension "PHP Console". - kinglozzer/yepnopesilverstripe (2.0.2)
A simple way of adding files to yepnope.js in SilverStripe - ianbogda/cssqueeze (1.3.0)
Efficient CSS minification in PHP - metamodels/core (1.0.9)
MetaModels core - webignition/node-jslint-wrapper (0.2.3, 0.2.2.1, 0.2.2)
Wrapper for the nodejs jslint wrapper. I heard you liked wrappers ... - juizmill/zend-pdo (v0.07)
Módulo que trabalha direto com PDO em conjunto com ZF 2 - openbuildings/promotions (0.3.4)
Promotions for Purchases - codeconsortium/ccdn-forum-bundle (2.0.3)
CCDN Forum Bundle - kompas/oauth2-client (0.3)
OAuth 2.0 Client Library - metamodels/filter_tags (1.0.2)
MetaModels tags filter - metamodels/filter_select (1.0.2)
MetaModels select filter - codeconsortium/ccdn-user-bundle (2.0.3)
CCDN User Bundle - codeconsortium/ccdn-user-profile-bundle (2.0.3)
CCDN User Profile Bundle - codeconsortium/ccdn-user-admin-bundle (2.0.3)
CCDN User Admin Bundle - codeconsortium/ccdn-message-bundle (2.0.3)
CCDN Message Bundle - codeconsortium/ccdn-component-dashboard-bundle (2.0.3)
CCDN Component Dashboard Bundle - codeconsortium/ccdn-component-common-bundle (2.0.3)
CCDN Component Common Bundle - turnaev/ext-data-grid-bundle (v1.1.2)
Symfony2 Datagrid Bundle - elao/form-translation-bundle (1.0.0)
Generate translation key for forms - openbuildings/jam-tart (0.2.32)
Admin Builder for Kohana, using Jam ORM - tpc2/phprack (1.1)
Light framework for automation of integration tests - jamesmoss/flywheel (0.3.1)
A lightweight, flat-file, document database - turnaev/dev-generator-tool-bundle (v1.1.7)
Console tool bundle for Symfony 2.2+ - bakame/csv (3.3.0)
A simple library to easily load, manipulate and save CSV files in PHP 5.4+ - statuspage/statuspage-sdk-php (v0.1)
Statuspage.io helps you to create a status page of your app or website. - testomato/apimato (v2.2)
Testomato API tools - patchwork/jsqueeze (v1.0)
Efficient JavaScript minification in PHP - 0k/php-oe-json (0.0.2)
OpenERP Json query - etechnika/idna-convert (1.0.2)
Etechnika.eu idna-convert - titon/db (0.10.1)
The Titon database package provides a basic database abstraction layer and an object relational mapper. - titon/db-mongodb (0.4.2)
Provides MongoDB database access for the Titon database package. - elementtree/elementtree (0.5.0)
simple PHP XML-like tree
Allan MacGregor: Design Patterns in PHP: Singletons
Allan MacGregor has posted his latest in his look at design patterns in PHP with this most recent post about the Singleton pattern.
The singleton pattern is used to restrict the instantiation of a class to a single object, which can be useful when only one object is required across the system. Singletons are designed to ensure there is a single (hence the name singleton) class instance and that is global point of access for it, along with this single instance we have global access and lazy initialization.
He provides a basic Singleton implementation in PHP, a "User" class that always returns the same instance of itself no matter how many times the "singleton" method is called. He continues on and touches on one of the pain points around singleton use - many developers consider them an anti-pattern because their results can make it difficult to correctly test. He talks about how they break the Single Responsibility Principle (part of SOLID) and how they can hide dependency injection.
Singletons, Anti-patterns, and patterns in general are not good or bad; what makes a Singleton an Anti-pattern is not the pattern itself but how often is poorly implemented and how easy it is to do so.
Link: http://coderoncode.com/2014/01/27/design-patterns-php-singletons.html
Dutch Web Alliance: The definitive remote debug and unittest with PHPStorm guide: part 7
The Dutch Web Alliance has posted the seventh part of their series looking at getting remote debugging and unit testing working with PHPStorm, a popular PHP IDE. You can start at the beginning or just find the links to any other articles in the series you might have missed in the first post.
So, your unit-tests should be small, not doing much, taking one unit at a time to test. Overall, not much is around to actually debug. But on occasion, having the ability to actually stepping through the unit-tests can save you a headache or two! Debugging your PHPUnit scripts isn't really that hard. In fact, most of what we need to do, we already covered in the previous postings! Consider this: PHPUnit is nothing more than a PHP framework running from the command line interface. And since we already know how to debug applications from the CLI, it must be easy!
This is the last post in the series and is pretty short. It basically talks about setting breakpoints in testing and letting PHPStorm catch the issues. If you'd rather run them from the command line, check out part six for more details.
Link: https://dutchweballiance.nl/techblog/the-definitive-remote-debug-and-unittest-with-phpstorm-guide-part-7/
PHPBuilder.com: Implementing Secure Passwords in PHP 5.5
On PHPBuilder.com today there's a new post introducing you to a relatively recent advancement in PHP (in version 5.5), the password hashing API. In this article they cover the basics including hashing and verifying the result.
PHP has always had a few simple ways to implement password hashing to an extent. MD5 and SHA1 are examples of this, but the security of these methods is not what it should be. [...] What we need is a secure password encryption mechanism that uses SALT and perhaps even something else to help us safely encrypt our passwords for later use. [...] Lucky for us, the folks at PHP have thought about this long and hard, and the result is a very simple PHP password hashing API that is not only easy to use, but fast and secure.
They briefly look at the two major functions in the updated feature - password_hash and password_verify and some basic code examples of their use.
Link: http://www.phpbuilder.com/articles/application-architecture/security/implementing-secure-passwords-in-php-5.5.html
SitePoint PHP Blog: Sending Confirmation Emails with Phalcon and Swift
The SitePoint blog has posted a new tutorial by author Thien Tran Duy showing you how to send emails with Swift through a Phalcon-based application via Gmail.
Today, sending emails is considered the basic functionality of any web application. Usually, an email is sent to notify the user of some kind of activity that has taken place on the website, such as when he registers the account, updates information, or when new friends have been found. In this short tutorial I'll show you how to send emails via Gmail quickly from within a Phalcon sample application. You can download the full source code from GitHub. We'll be building functionality which lets us send a confirmation email, and reacts to the click of said confirmation email.
The tutorial walks you through the entire process from start to finish, complete with code examples. It helps you set up the Phalcon project, modify the configuration, set up models and create the basic controller. You'll need to either install Swift via Composer or by just adding the files to the vendor directory though. The script uses this library to send the message, store the hash in an "email_confirmations" table and verify it once the user returns.
Link: http://www.sitepoint.com/sending-confirmation-emails-phalcon-swift/
2014年1月28日星期二
Community News: Latest PECL Releases for 01.28.2014
- APCu 4.0.3
- Fix various compatibility problems
- Fix a few lingering faults
- Remove experimental eval serializer
- Fix iterator for compatibility - protocolbuffers 0.2.1
This is package.xml maintenance release only. - protocolbuffers 0.2.0
Initial Release - swoole 1.6.10
- Enabled by default async_mysql
- Add tcp heartbeat mechanism
- UDP send no require from_id
- swoole_client on::Receive and on::Close no need to call recv/close
- Add last_time and connect_time to tcp connection_info
- rebuild data_buffer - ssdeep 1.0.4
This is a build maintenance release only so there is no need to upgrade.
- Make use of --with-libdir so installers can override the lib default (RHEL uses lib64 for example)
- Clean up the build script to standardise the code constructs used
- Add LICENSE, README and CREDITS to PECL package configuration - ssdeep 1.0.3
Bug #60347 OSX can't build as .so hardcoded
Community News: Packagist Latest Releases for 01.28.2014
- titon/db (0.10.0)
The Titon database package provides a basic database abstraction layer and an object relational mapper. - parm/parm (1.3.0)
Active Record ORM with closures and web interface - yajra/laravel-oci8 (0.2.18)
Oracle DB driver for Laravel 4 via OCI8 - nategood/commando (0.2.4)
PHP CLI Commando Style - nazar-pc/upf (1.1.1)
Useful PHP Functions: set of system-independent functions from CleverStyle CMS - indigophp/fuel-sms (v1.0.0-alpha)
Fuel wrapper around Indigo SMS package - indigophp/sms (v1.0.0-alpha)
SMS abstraction layer - rhumsaa/uuid (2.6.1)
A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID). - patchwork/cssqueeze (1.2.1, 1.2.0, 1.1.2, 1.1.1)
Efficient CSS minification in PHP - bluedogtraining/guzzle-eway (v2.1.4)
A Guzzle client for interacting with the Eway Direct Transactions API - whitecap/router (0.3.0, 0.2.0)
A small and efficient web routing library. - simple-crud/simple-crud (v1.7.0)
PHP mysql CRUD class - awellis13/laravel-resque (1.2.0)
Laravel Resque connector for Queue. - boomerang/validatr (v1.0.1-rc, v1.0.0-beta)
Simple Php standalone Validator class. - patricktalmadge/bootstrapper (4.1.0)
Twitter Bootstrap markup generator - menatwork/extendededitors (1.1.3)
New inserttags for external URLs and current language - golonka/bbcodeparser (v1.1.0)
Parse your BBCode easy with this library. - cordoval/gush (v1.3.1)
Rapid workflow for project maintainers and contributors - rogerclotet/angularjsbundle (1.0.3)
Symfony2 bundle for AngularJS integration - voceconnect/select-posts-widget (0.4.4)
Select posts to display in a widget with an easy drag and drop interface - limp/quee (v1.0)
Simple active record and fluent query builder for PHP 5.4 - offshoot/shopify-php (0.9.0)
Simple Shopify API client in PHP - dotblue/mandrill (v1.1.0, v1.0.1, v1.0.0)
OO wrapper above Mandrill API for sending e-mails - arhframe/yamlarh (1.0.1, 1.0)
Yml injector for arhframe in standalone - imsaintx/utils (1.0.0)
A useful, convenient and practical developer tool box. - indigophp/fuel-queue (2.0.0-alpha, 2.0.0-beta)
Fuel wrapper around Indigo Queue package - kkamkou/sms-online-api (1.0.1)
API for the smsonline.ru messaging service - arhframe/util (1.1.2, 1.1.1, 1.1, 1.0)
Util class for arhframe - domnikl/statsd-bundle (1.0.2)
adds support for statsd in your Symfony2 application - oyejorge/less.php (v1.5.1.2, v1.6.1rc1)
PHP port of the Javascript version of LESS http://lesscss.org - iugu/iugu (1.0.4)
iugu PHP Library - pieterb/webdav-php (1.0.1)
A library to create a webDAV server - fabiang/xmpp (0.2.0)
Library for XMPP protocol connections (Jabber) - pym/table (0.5.1, 0.5.0)
Dead simple abstraction layer for doctrine/dbal. - beelab/bowerphp (v0.1.4-alpha)
An implementation of bower in PHP - hylianshield/hylianshield (0.1.1)
Data validation and sanitizing - g4/tasker (0.1.5)
Application asynchronous tasks manager and runner, cron-like PHP implementation - openbuildings/promotions (0.3.3)
Promotions for Purchases - tonicospinelli/classgeneration (2.1.1)
Library to create Php Class files - opensolutions/doctrine2bridge (v2.4.4)
Adds the the power of Doctrine2 to Laravel 4 (with support for SQL logging and authentication) - fresh/doctrine-enum-bundle (v2.4)
Provides support of MySQL ENUM type for Doctrine2 in Symfony2 applications. - sebklaus/profiler (v1.7.5)
A profiler for Laravel 4. A continuation of the retired juy/profiler. - psamatt/service-bus-lite-bundle (1.0, 0.2)
ServiceBus bundle implementation in Symfomy2 - openbuildings/timestamped-migrations (0.1.3)
Migrations are a convenient way for you to alter your database in a structured and organized manner - lcobucci/action-mapper (1.0.0-alpha12)
Front controller framework for PHP 5.3+ applications - predictionio/predictionio (v0.6.2)
PredictionIO API PHP Client - webcms2/webcms2 (v0.3.10)
WebCMS2 content management system for Nette framework. This package contains system libraries and admin module. - guimdev/bdd (1.2.12)
BdD is php class for easy use PDO with only 2 functions read & write - gourmet/webmaster (0.1.0)
Gourmet Webmaster Plugin for rapid CakePHP application development - gourmet/email (0.1.0)
Gourmet Email Plugin for rapid CakePHP application development. - gourmet/security (0.1.0)
Gourmet Security Plugin for rapid CakePHP application development. - openbuildings/purchases (0.5.19)
Multi Store Purchases - imsamurai/active-record-for-cakephp (1.0.2)
Implementation of active record for CakePHP - bread/media (v0.1.1)
Bread media library - bread/http (v1.4.0)
Bread HTTP library - dunglas/php-socialshare (v0.1.3)
Retrieve social networks share counts and share links - m6web/firewall-bundle (0.3.1)
Bundle providing IP filtering features for controllers and actions - gourmet/common (0.1.1)
Gourmet Common Plugin for rapid CakePHP application development. - elepunk/orchestrate (v0.1.1)
Orchestra platform extension generator - tomas-votruba/schmutzka-framework (2.0.2)
Simple, practice inspired, Nette based framework. - bread/rest (v0.6.7)
Bread REST framework - g4/mcache (0.6.1)
mcache php library - frenkynet/flysystem (0.2.1)
Filesystem abstraction, but easy. - league/flysystem (0.2.1)
Filesystem abstraction, but easy. - comnect/consoler (0.1.5)
php console - skylarkelty/fizz (1.5.1)
A lightweight ORM.
Lorna Mitchell: GitHub-Powered Changelog Scripts
In her latest post Lorna Mitchell has shared some scripts she uses to automate the creation of a changelog based on the GitHub issue comments and fixes.
My current project does periodic releases, we build a few things, then we work on getting a bunch of user feedback and changing/fixing things before we actually release. [...] When a branch merges in to the main line, we use the "fixes #42" notation to simultaneously close off the issue that it relates to. This has been working pretty well, and today I got the question "what's new since I last saw this project?" - so I created a changelog. It's rather rough-and-ready but I had fun so I thought I'd share.
The script operates off of a local git cloned version of the repository and grabs all commit messages with the tern "fixes" in it. The script then takes the log file, matches the issue ID and then makes a cur call out to the GitHub API to get that issue's description. This is then taken, formatted and dropped into the output.
Link: http://www.lornajane.net/posts/2014/github-powered-changelog-scripts
Cal Evans: Let's be honest...
Cal Evans has posted a sort of "call to arms" for the developers out there, asking them to be more honest with software estimates and think realistically about the project and its complexities.
As developers, we see projects not as a job that must be done, but as art that can be created, as a project that needs to be crafted. It's not a spreadsheet of numbers to us, it's a sketch on a napkin of something we want to build. As such, we see the big picture, but miss the details. So when we tell a customer/client/family member "Yeah, I can build that this weekend". In our mind, we mean it. We honestly think the project is simple enough to be built in a weekend. It rarely is though.
He goes on to talk about some of his own experience with the "just a weekend" claims and the over-promising that comes easily to devs. He suggests a few things to link about as you're estimating your next project - can you actually do it (not a "learn on" project) and thinking about when it will be done based on availability, not just desire and work in isolation.
Link: http://blog.calevans.com/2014/01/27/lets-be-honest/
Matthew Turland: How to be a Great Developer
In his latest post Matthew Turland has shared some of his thoughts about how to be a better developer, regardless of the language or skill level you may find yourself at.
I've shamefully ripped off the title for this blog post from what I expect will be a phenomenal session given by Ed Finkler at php[tek] 2014. Sadly, I haven't seen the session and may not be present at the conference. However, I've spoken with Ed and seen him give sessions on several occasions, so I know he sets the bar pretty high. If you've not considered attending the conference and his session, I highly recommend doing so. Ed has plenty of insightful things to say about being a great developer. Today, the subject coincidentally crossed my mind and I realized I had a few things to say on the matter that may also prove useful to others.
He suggests that there are three main qualities that developers need to become better at their craft and, as a positive side effect, work better with other developers around them. These three points are:
- Humility
- Patience
- Imperfection
For each, he briefly explains the topic and makes some practical suggestions for achieving the goal.
These are things I've learned from my own experiences. I state them here realizing that they may be more applicable to me than they are to you. You must form your own opinions and find your own wisdom. [...] In the end, you must find your own path. Regardless of what that path is, I hope you find the passion shared by myself and those who inspire me and I wish you well in your pursuits.
Link: http://matthewturland.com/2014/01/24/how-to-be-a-great-developer/
2014年1月27日星期一
Community News: Packagist Latest Releases for 01.27.2014
- doctrine/doctrine-bundle (v1.3.0-beta1)
Symfony DoctrineBundle - mikejestes/ornamental (0.1.0)
A library to send templated transactional emails, and easily test. - composer/installers (v1.0.9)
A multi-framework Composer library installer - nanapi/cakephp-fluent-logger (v1.0.1)
Fluent log engine plugin for CakePHP - yajra/laravel-oci8 (0.2.17)
Oracle DB driver for Laravel 4 via OCI8 - darren-nolan/styler (v0.0.2)
CSS Styler package for Laravel. Compiles Less/SCSS on the fly and supports serving cached content. - willskates/arrayfetcher (1.0.1)
A simple library loads arrays from different source files of different types. - clue/redis-protocol (v0.3.0)
A streaming redis wire protocol parser and serializer implementation in PHP - radnan/rdn-doctrine (v1.0.0)
Zend Framework 2 Doctrine ORM bridge - davejamesmiller/laravel-breadcrumbs (2.2.0)
A simple Laravel-style way to create breadcrumbs in Laravel 4. - pid/speakingurl (0.8.4, 0.8.3)
Generate of so called 'static' or 'Clean URL' or 'Pretty URL' or 'nice-looking URL' or 'Speaking URL' or 'user-friendly URL' or 'SEO-friendly URL' or 'slug' from a string. - riquito/baobab (v1.2.1)
A library applying the nested set model - thinframe/karma (v0.2.1)
Experimental HTTP server written in PHP - thinframe/inotify (v0.2.1)
Inotify module for ThinFrame - thinframe/server (v0.2.1)
HTTP Server written in PHP - elepunk/orchestrate (v0.1)
Orchestra platform extension generator - acquia/acquia-sdk-php (0.5.1)
The Acquia SDK for PHP allows developers to build applications on top of Acquia services. - tadcka/breadcrumbs (v1.0.0)
Paginator component - silverstripe/advancedworkflow (3.0.2)
Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions. - skylarkelty/fizz (1.5.0, 1.4.0, 1.3)
A lightweight ORM. - hannesvdvreken/hipchat (v0.1.0)
A notifier class for Hipchat notifications - cakephp/cakephp (2.4.5)
The CakePHP framework - thinframe/command_line (v0.2.1)
CLI support for PHP applications. - thinframe/pcntl (v0.2.1)
- thinframe/http (v0.2.1)
collection of PHP classes that simplifies the work with the HTTP protocol. - skylarkelty/fizz-introspect (1.1.0)
A Fizz introspector. - pekkis/queue (v0.1.0)
Queue abstraction library - bluetools/moneybird-php-api (v2.3.3)
A PHP Library for the MoneyBird API - bocharsky-bw/numeral-system-converter (v1.0.0)
Convert numbers to different numeral systems. - tadcka/paginator (v1.0.0)
Paginator component - thinframe/annotations (v0.2.1)
Annotations metadata for PHP classes - thinframe/events (v0.2.1)
Powerful events system. - thinframe/applications (v0.2.1)
PHP applications ecosystem - thinframe/foundation (v0.2.1)
A collection of classes that make the foundation of all ThinFrame components - webignition/node-jslint-wrapper (0.2.1, 0.2)
Wrapper for the nodejs jslint wrapper. I heard you liked wrappers ... - pym/table (0.4.0)
Dead simple abstraction layer for doctrine/dbal. - webignition/node-jslint-output-parser (1.0.6)
Parser for the output of reid / node-jslint, get lovely things such as a list of errors, error counts, % of content scanned, bunnies - eo/passbook-bundle (v1.0.1)
iOS Passbook for Symfony2 - go/ewp (0.0.1)
Esperanto word parser - bonndan/release-manager (0.4.2)
Release Manager for semantic version releases of composer packages and projects. - eo/passbook (v1.1.0)
iOS Passbook for PHP - camdram/sphinx-realtime-bundle (0.1.0)
A bundle for Symfony2 which automatically syncs Doctrine entities to a Sphinx real-time index. - acts/sphinx-realtime-bundle (0.1.0)
A bundle for Symfony2 which automatically syncs Doctrine entities to a Sphinx real-time index. - jeroen-g/laravel-photo-gallery (v1.1)
A photo gallery for Laravel 4 - go/db (2.0.2)
Database library - cakephp/monolog (1.4.2)
CakePHP Monolog Plugin - scheb/stock-panel-bundle (v1.0.0)
Keep track of your stock portfolio - cornernote/yii-menu-module (1.0.2)
Provides components and an interface to manage menus using a database. - beberlei/assert (v2.0.1, v2.0)
Thin assertion library for input validation in business models. - mauserrifle/simresults (v0.2.6)
Simrace result reader for PHP - pinepain/amqpy (v0.0.2)
Lightweight AMQP framework built on top of the php-amqp extension - tecnick.com/tcpdf (6.0.057)
TCPDF is a PHP class for generating PDF documents. - philipbrown/worldpay (v1.1.1, v1.0.0)
A PHP wrapper for WorldPay - saxulum/saxulum-route-controller-provider (1.0.2, 1.0.1, 1.0.0)
Saxulum Route/Controller Provider - localdisk/nhk (0.0.4, 0.0.3, 0.0.2, 0.0.1)
A simple API extension for NHK Program guide. - anh/doctrine-extensions-taggable (v1.0.1)
Doctrine2 taggable behavior extension - brickrouge/css-class-names (v2.0)
An API to support CSS class names. - nizsheanez/yii2-websocket-application (v0.4)
WebSocket yii2 Application and Request/Response classes, and wam protocol implementation protocol - interslice/azure-session-handler (v1.0.1)
Use Windows Azure Table Storage as a session handler for PHP applications - redkite-labs/redkite-labs-theme-engine-bundle (v1.1.1)
ThemeEngineBundle handles themes packed as standard Symfony2 Bundles - redkite-cms/redkite-cms-bundle (v1.1.1)
RedKiteCms is an Open Source Content Management System Application, built on top of Symfony2 and TwitterBootstrap frameworks, providing an easy an intuitive user-interface, to improve the website's content management experience
Matt Frost: Getting Talks Selected
If you're considering getting into the world of speaking at an upcoming PHP conference, Matt Frost has some advice for you to help you get started. It can be intimidating, so learn from some of his own experiences as a relatively new speaker in the community.
It's a very busy conference season in and around the PHP Community. [...] These conferences are such a blessing to those who are able to attend, the speakers know their stuff and are very open to sharing and talking outside of their sessions. But you're a smart cookie too! You've got ideas and thoughts and knowledge that other people would like to have, so how do you get in on this? I'm going to tell you how I got into it, your mileage may vary, but hopefully it helps.
He points out that submitting a talk and getting accepted is "a lot like the lotto" sometimes, that you can't win unless you buy a ticket (submit that talk). He looks at a few of the other common questions from beginning speakers - what do I talk about, how do I write an abstract and common first time speaking concerns.
There's no magical elixir that will land you speaking gigs at cool conferences. Everyone that speaks, from the seasoned pro to the up and comer, has worked extremely hard to not only put the talks together; but acquire all the knowledge necessary to give the talk in the first place
Link: http://shortwhitebaldguy.com/blog/2014/01/getting-talks-selected
Erika Heidi: Vagrant Usage Research
If you've never heard of the powerful tool and you need automation around creating and configuring multiple virtual machines, you really should check it out. If you're curious as to how it's being used and what kind of things it's used for, check out this new post from Erika Heidi based on some research she recently did (and a survey she received some good feedback to).
From 11 to 14 of January, 720 Vagrant users from different sources (Twitter, IRC and the official Vagrant mailing list) answered a quick form I created to find out how people are using Vagrant. I'm currently in the process of writing a LeanPub book about this tool, and I was really curious especially about the provisioners usage.
She's put together the results in the form of an easy to read infographic with details about:
- The most popular provisioners
- The percentage of boxes running with OS
- The percentage of languages on the boxes
- The OS most Vagrant users use
...and finally the answer(s) to the question of "why vagrant?" but I'll leave it to you to read the post to find out that one.
Link: http://www.erikaheidi.com/2014/01/24/vagrant-usage-research/
NetTuts.com: SOLID: Part 3 - Liskov Substitution & Interface Segregation Principles
On NetTuts.com today they've continued their series covering the SOLID development principles with the next letter in the acronym - "L". It stands for the Liskov Substitution & Interface Segregation Principles. The tutorial also talks some about the "Interface Segregation Principle" as they go hand-in-hand.
The concept of this principle was introduced by Barbara Liskov in a 1987 conference keynote and later published in a paper together with Jannette Wing in 1994. Their original definition is as follows: "Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T." [or more simply] "Subtypes must be substitutable for their base types."
They include some example PHP code showing a base "Vehicle" class and first an example of doing it correctly (with the Template design pattern) and an example of an incorrect method, complete with tests. They then get into the Interface Segregation Principle, an interface that can be depended on to use the module, with the same car-related examples.
Link: http://net.tutsplus.com/tutorials/php/solid-part-3-liskov-substitution-interface-segregation-principles/
SitePoint PHP Blog: HHVM vs Zend Engine in PHP 6
In this recent post to the SitePoint PHP blog Bruno Skvorc compares two technologies that have influence how PHP performs - the HHVM (HipHop Virtual Machine) and the Zend Engine in PHP6 - and the potential replacement of one with the other.
The fabled PHP 6 is long overdue. This unicorn of the web dev world has been "coming" for decades now, and it's still not clear whether or not it's actually something that's going to happen in this decade, or just an idea, a fantasy of the PHP userbase. [...] In the latest edition [of the PHPClasses podcast] between Manuel Lemos and César Rodas, an interesting topic arose among others - Facebook's HHVM replacing Zend Engine in PHP 6. While this was purely speculation on the part of the participants, and whether or not you believe in PHP 6, you have to admit it's an interesting notion.
He starts with a look at the overall pros of the HHVM solution - the speed of execution, that it's backed by Facebook and its support for static typing. There's some cons that come with the HHVM though, including not allowing custom extensions, that it's developed by Facebook (yes, this can be a con too) and that there are other ways to enhance PHP's execution speed without sacrificing other functionality.
Link: http://www.sitepoint.com/hhvm-vs-zend-engine-php-6/
2014年1月26日星期日
Community News: Packagist Latest Releases for 01.26.2014
- fuzzysteve/eve-blueprint-library (1.0.1, 1.0)
blueprint details library - eloquent/blox (3.0.1)
A parser for block comment documentation. - koriym/fusion-cache (0.1.0)
Memory+File hybrid cache - phpmachinist/phpmachinist (v3.0.0, v2.1.0)
Testing object factory for PHP - gobie/regex (0.1.0)
Regex is library containing lightweight wrappers around regular expression libraries and extensions for day to day use. - cakephp/security (0.1.0)
CakePHP Security Plugin - cakephp/email (0.1.0)
CakePHP Email Plugin - mihaildev/yii2-ckeditor (1.0.0)
Yii2 CKEditor - mihaildev/yii2-elfinder (1.0.0)
Yii2 ElFinder - dklemmt/contao_dk_masonry (1.2.0)
Implementation of Masonry as extension for Contao Open Source CMS - wysow/archive-my-tweets-application (v1.6)
Application to archive your own tweets - phramz/commons (v1.0.3, v1.0.2)
Util Library - opauth/mailru (v0.4.0-alpha)
Mail.Ru strategy for Opauth - tigefa4u/tigefa4u.github.io (v3.1.1)
tigefa jekyll template site - kkamkou/sms-online-api (1.0.0)
API for the smsonline.ru messaging service - webignition/node-jslint-wrapper (0.1.1, 0.1)
Wrapper for the nodejs jslint wrapper. I heard you liked wrappers ... - diemuzi/mp3 (1.1.2, 1.1.1)
MP3 Player - spekkionu/assetcachebuster (v1.0.1)
Prefixes asset urls with a unique hash which will allow invalidation of asset files cached by the browser. - endroid/openweathermap (1.0.2)
Endroid OpenWeatherMap - eko/feedbundle (1.1.3)
A Symfony bundle to build RSS feeds from entities - endroid/sudoku (1.0.4)
Endroid Sudoku solver - kinglozzer/yepnopesilverstripe (2.0.1)
A simple way of adding files to yepnope.js in SilverStripe - voceconnect/select-posts-widget (0.4.3, 0.4.2)
Select posts to display in a widget with an easy drag and drop interface - webcms2/webcms2 (v0.3.9)
WebCMS2 content management system for Nette framework. This package contains system libraries and admin module. - ptlis/semantic-version (v0.8.0)
Tools for working with semantic version numbers. - zeichen32/gitlabapibundle (v2.0.0)
Symfony2 Bundle to include the gitlab api. - indigophp/queue (v2.0.0-beta)
Manage work queues with PHP - tecnick.com/tcpdf (6.0.056)
TCPDF is a PHP class for generating PDF documents. - codeblanche/depend (1.0.8)
Less Configuration, More Injection - nitra/admingenerator-generator-bundle (1.0.0)
Admingenerator for Symfony2 based on YAML configuration and Twig templating - nazar-pc/php-markdown-next (2.0.5)
PHP Markdown Next - webignition/node-jslint-output-parser (1.0.5.3, 1.0.5.2)
Parser for the output of reid / node-jslint, get lovely things such as a list of errors, error counts, % of content scanned, bunnies - eoghanobrien/php-simple-mail (1.0.0)
Simple PHP 5 Email Class with Chainable Methods - phspring/common (1.0.0, 0.0.1)
Spring framework implementation in PHP - eloquent/asplode (2.0.0)
Drop-in exception-based error handling for PHP. - remdex/livehelperchat (1.81)
Live Helper Chat - live support for your website. Featuring web and desktop clients. Compatible Windows, Linux, Mac. Desktop client powered by QT. Supports mobile phones based on XMPP service providers (GTalk, Xabber, Mono etc.) - mews/captcha (v1.0.1)
Captcha Package for Laravel 4 - mikehaertl/phpwkhtmltopdf (1.2.0)
A slim PHP wrapper around wkhtmltopdf with an easy to use and clean OOP interface - zoopcommerce/shard-module (2.0.2)
Zend Framework 2 Module for Shard - ddeboer/data-import (0.12.0)
Import data from, and export data to, a range of file formats and media - ebidtech/common-object (v0.1.2.1, v0.1.2, v0.1.1)
A collection of common objects - ebidtech/validator (v0.1.3.1)
A validator on top of Symfony validator - that-chris-r/runescape-highscores (v1.0.0)
A set of classes to better manipulate the RuneScape lite highscores API - creolab/laravel-modules (0.5.4)
Application specific modules in Laravel 4 - datatheke/pager-bundle (v0.3.1)
Pager & DataGrid bundle for Symfony2 - jlaso/translations-apibundle (1.0.0)
Client API for translations.com.es - yajra/laravel-oci8 (0.2.16)
Oracle DB driver for Laravel 4 via OCI8