2013年9月30日星期一
Community News: Packagist Latest Releases for 09.30.2013
- predaddy/predaddy (1.2.1, 1.2.0)
Common DDD classes and utilities - cpliakas/psolr (0.2.0)
A PHP client for Apache Solr. - slywalker/debug_kit_plus (1.1.0)
CakePHP DebugKitPlus Plugin - dreamfactory/lib-php-common-platform (1.1.7)
DreamFactory Services Platform(tm) Components Library - dreamfactory/dsp-core (1.1.2.1)
DreamFactory Services Platform(tm) Core - phundament/p3bootstrap (0.21.0)
Bootstrap Theme for Phundament - bcc/enumerable-utility (1.1)
Provides easy manipulation of array, string, and enumerables - jstayton/miner (v0.9.2)
A dead simple PHP class for building SQL statements. No manual string concatenation necessary. - menatwork/synccto (2.4.3)
Synchronize multiple contao installations with each other - fountain/cache (v1.0)
Cache management - rcastera/mysql-wrapper (v1.0.1)
MySQL Abstraction Class - rcastera/mongo (v1.0.0)
Mongo Abstraction Class - samchristy/piechart (v2.0.0)
A simple class for drawing pie charts with ImageMagick or GD in PHP. - gregwar/captcha (v1.0.9)
Captcha generator - jboysen/laravel-gcc (v1.2.1)
Use Google Closure Compiler to minify javascript files in Laravel 4. - alaneor/ldap (0.3.2)
A simple class encapsulation of php's ldap functions - anlutro/sc2ranks-v2 (1.0.3)
PHP implementation of SC2Ranks API V2 - tecnick.com/tcpdf (6.0.036)
TCPDF is a PHP class for generating PDF documents. - slam/tcpdf (6.0.036)
TCPDF is a PHP class for generating PDF documents. - zaininnari/html-minifier (0.4.0)
The Blink HTMLTokenizer ported to PHP. - raulfraile/ladybug (v1.0.3)
Simple and Extensible PHP Dumper - elendev/image-bundle (1.1.5)
Provide simple image utilities for resizing - mediawiki/sub-page-list (1.0rc)
SubPageList is a lightweight extension to display lists of subpages
Engine Yard: Podcast - Future of PHPWomen
In their latest podcast Engine Yard (as hosted by Davey Shafik) talks with Lineke Kerckhoffs-Willems and Michelle Sanver about the future of PHP Women, a group within the PHP community to help encourage women in technology and support the PHP community overall, regardless of gender.
Among the topics discussed in this episode are things like:
- The official mission of PHPWomen
- How to get involved
- Future plans for the group
- A mention of the CodeConnexx conference (Europe edition)
You can either listen to this episode through the in-page player or you can subscribe to their feeds to get this and other episodes - iTunes, RSS.
Link: https://www.engineyard.com/podcast/future-of-phpwomen
Kevin Schroeder: More - The file system is slow
As a follow-up to his previous article about the (minimal) overhead from logging, Kevin Schroeder has this new post focusing on the common belief that writing to the file system is the slowest method.
I had a conversation the other day by a person I respect (I respect any PHP developer who knows how to use strace) about the cost of file IO. My assertion has been, and has been for a long time, that file IO is not the boogeyman that it is claimed to be. So I decided to test a cross between those two posts.
His test was to write one million log records to two different sources - the normal physical file system, a RAM drive - one run with a file handle that's left open and the other with a new handle each time. He shows how he made the RAM drive and the PHP he used for the test (running in a VM). He graphs out the results with some interesting results...but you'll have to read the post for that.
Link: http://www.eschrade.com/page/more-on-the-file-system-is-slow/
Chris Hartjes: Testing Listeners
In the latest post to his site, Chris Hartjes offers some advice about unit testing with listeners to help teach PHP developers the right way to test.
I had an idea to put together some kind of "PHP Testing Koans" site as a way to help PHP developers get better at learning how to actually write tests. Most developers who are introduced to testing get blocked at the point of actually writing a test. [...] So I started to brainstorm ways to make it happen. With some help from Joel Clermont I stumbled upon using test listeners for this.
He uses the built-in test listeners for PHPUnit to write a system that checks to ensure a certain test exists in a "Koan1Listener" class. This class implements the PHPUnit_Framework_TestListener interface and has several methods to catch events and handle issues thrown during execution.
The approach is simple: for each test class that gets executed, add the names of all the methods to an internal list. When the entire test suite is finished, we then check to see if the test names that we were expecting are in our list of methods we found. I am sure there is a more efficient way to do it, so let me know in the comments of a different approach.
Link: http://www.littlehart.net/atthekeyboard/2013/09/27/test-listeners/
SitePoint PHP Blog: Collection Classes in PHP
On the SitePoint PHP blog a new tutorial introduces you to collection classes in PHP, replacing the more basic array with something with a bit more power.
Applications frequently have objects that contain a group of other objects, and this is a great place to make use of collections. [...] A Collection class is an OOP replacement for the traditional array data structure. Much like an array, a collection contains member elements, although these tend to be objects rather than simpler types such as strings and integers.
He mentions some of the common problems with arrays (and the data they contain) and points out that the structure a "Collection" class wraps around it can help keep things sane. He includes an example of a basic collection class that adds/gets/deletes items from an internal (private) array. He fleshes out this class with code inside those methods and a few others: keys, length and keyExists.
Link: http://www.sitepoint.com/collection-classes-in-php/
2013年9月29日星期日
Community News: Packagist Latest Releases for 09.29.2013
- svyatov/yii-shortcut (v1.3.1)
Shortcuts for Yii framework - cpliakas/acquia-sdk-php (0.1.1)
An experimental PHP SDK for Acquia. - commentar/dummy-storage (v0.1.8, v0.1.7, v0.1.6, v0.1.5, v0.1.4)
Dummy data provider for the Commentar commenting system - behat/behat (v3.0.0beta7)
Scenario-oriented BDD framework for PHP 5.3 - net_bazzline/component_heartbeat (0.1.0)
php component heartbeat - korneil/jtmp-assetic-filter-bundle (v0.1.0)
JTMP AsseticFilterBundle - raulfraile/ladybug (v1.0.2)
Simple and Extensible PHP Dumper - raulfraile/ladybug-bundle (v1.0.1)
Symfony2 bundle for Ladybug library (Simple and Extensible PHP Dumper) - frozennode/administrator (v4.7.0)
A database interface package for Laravel - rcastera/session (v1.0.0)
Session Class - phundament/p3widgets (0.15.3)
Widget Manager - schmunk42/ckeditor-configurator (0.2.1)
- schmunk42/database-command (0.8.11)
Yii command to create database migrations from existing schema - zhuravljov/yii2-debug (v1.1)
Yii debug toolbar - davejamesmiller/laravel-breadcrumbs (2.0.0)
A simple Laravel-style way to create breadcrumbs in Laravel 4. - stefano/stefano-datetime (0.1.1, 0.1.0)
DateTime object - loumray/wpcore (v0.3, v0.2)
Object Oriented core to simplify plugins and themes development for wordpress - eexit/twig-context-parser (0.1.0)
Get a Twig template context variables pragmatically. - commentar/json-storage (v0.0.5)
This storage mechanism requires no database, but rather stores the data encoded in the JSON format on the filesystem. - hwi/oauth-bundle (0.3.0)
Support for authenticating users using both OAuth1.0a and OAuth2 in Symfony2. - davidsteinsland/cakephp-shells (1.0)
CakePHP utility shells and tasks - exeu/apai-io (1.4.0)
Amazon Product Advertising PHP Library - bread/authentication (v0.2.0)
Bread authentication library - bread/rest (v0.5.0)
Bread REST framework - bread/types (v0.3.0)
Bread types library - bread/storage (v0.8.1, v0.8.0)
Bread storage library - marcojanssen/silex-routing-service-provider (1.1.1)
Silex provider for adding routes
2013年9月28日星期六
Community News: Packagist Latest Releases for 09.28.2013
- phundament/p3widgets (0.15.2)
Widget Manager - phundament/p3bootstrap (0.20.0)
Bootstrap Theme for Phundament - franzose/closure-table (v2.1)
Closure table database design pattern implementation for Laravel - darren-nolan/styler (v0.0.1)
CSS Styler package for Laravel. Compiles Less/SCSS on the fly and supports serving cached content. - rcastera/mailer (v1.0.0)
Mail Abstraction Class - dreamfactory/lib-php-common-platform (1.1.6, 1.1.5, 1.1.4, 1.1.2, 1.1.1)
DreamFactory Services Platform(tm) Components Library - raulfraile/ladybug-bundle (v1.0.0)
Symfony2 bundle for Ladybug library (Simple and Extensible PHP Dumper) - rcastera/mysql-wrapper (v1.0.0)
MySQL Abstraction Class - raulfraile/ladybug (1.0.1, 1.0.0)
Simple and Extensible PHP Dumper - lukaswilkeer/silex-silicon (v0.1)
A pre-configured skeleton for the Silex microframework - hurad/hurad (0.1.0-alpha.2)
Hurad is web software you can use to create a beautiful blog. - hautelook/gearman-bundle (0.5.7)
Symfony2 Bundle that provides a service to submit Gearman jobs - gumbyframework/gumby (2.5.8, 2.5.7)
A Flexible, Responsive CSS Framework - Powered by Sass - rgou/bootstrap-bundle (v0.9.3)
Twitter Bootstrap Symfony2 bundle with generator for Doctrine ORM and ODM - minime/annotations (1.4.3)
Minime / Annotations is a lightweight PHP annotation library - dreamfactory/app-launchpad (1.1.2)
DreamFactory Services Platform(tm) LaunchPad Application - dreamfactory/dsp-core (1.1.2)
DreamFactory Services Platform(tm) Core - dreamfactory/app-admin (1.1.0.5, 1.1.0.4)
DreamFactory Services Platform(tm) Admin Application - hampel/validate-laravel (1.1.0)
Custom Laravel 4 Validator service provider composer package - hampel/validate-laravel-sentry (1.0.1, 1.0.0)
Custom Laravel 4 Validator for Sentry Auth service provider composer package - crisu83/yii-auth (1.7.0, 1.6.0)
Web UI for the authorization manager of Yii PHP framework. - sami/sami (v1.2)
Sami, an API documentation generator - marcojanssen/silex-routing-service-provider (1.1.0)
Silex provider for adding routes - eden/block (1.0.5)
Eden common block component - webignition/html-document-link-checker (0.3)
Check the links in a HTML document, find the working ones, find the broken ones, make happy people - eden/core (1.0.8)
Eden Core component full of secret sauce - schmunk42/ckeditor-configurator (0.2.0)
- parm/parm (0.1.3)
Active Record ORM with closures and web interface - hampel/validate-laravel-auth (1.0.0)
Custom Laravel 4 Auth Validator service provider composer package - itsgoingd/clockwork (v1.1)
Server-side component of Clockwork, a Chrome extension for PHP development - webignition/html-document-link-finder (0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3)
Find anchor URLs in a given HTML document - blablacar/worker-lib (v1.0.7)
Worker lib for BlaBlaCar - packfire/framework (2.1.1)
The rapid-development object-oriented framework for PHP. Be surprised at how fast you can build a web application with a pack of fire. - usmanhalalit/pixie (1.0.2, 1.0.1)
A lightweight, expressive, framework agnostic query builder for PHP. - crisu83/yiistrap-widgets (1.1.1)
Extension library for Yiistrap. - marcojanssen/silex-service-register-provider (1.1.0)
Silex provider for registering other providers - bartosz-maciaszek/php-rtm (1.0.4)
Remember The Milk API client for PHP - n98/magerun (1.78.4)
Tools for managing Magento projects and installations - turnaev/ext-data-grid-bundle (v1.0.4)
Symfony2 Datagrid Bundle - iakumai/sphinxsearch-bundle (0.2.3)
Sphinx search bundle for Symfony 2 - sammaye/mongoyii (2.3.0, 2.2.6, 2.2.5)
A Yii MongoDB ORM - mrjuliuss/syntara (1.1.4)
Syntara is an admin package for laravel 4 - mikehaertl/phpwkhtmltopdf (1.1.6)
A slim PHP wrapper around wkhtmltopdf with an easy to use and clean OOP interface - symfony/symfony (v2.3.5)
The Symfony PHP framework - kohkimakimoto/altax (v2.0.0)
Altax is a simple deployment tool running SSH in parallel. - necromant2005/gearman-stats (1.1)
Geaman connector for getting status and statistic data - knplabs/mailjet-api-php (v1.1.1)
Mailjet PHP API client
2013年9月27日星期五
Site News: Popular Posts for the Week of 09.27.2013
- Reddit.com: When do you throw exceptions?
- PHP.net: PHP 5.4.20 Released
- Site News: Popular Posts for the Week of 09.20.2013
- [php]architect: September 2013 Issue Released - Tools of the Trade
- Community News: Latest PEAR Releases for 09.23.2013
- Community News: Latest PECL Releases for 09.24.2013
- Community News: Latest Releases from PHPClasses.org
- Erika Heidi Reinaldo: Optimizing Symfony applications on Vagrant boxes
- Community News: PHP-FIG Voting on PSR-4 Opened
- Brandon Savage: The myth of the untestable controller
Community News: Packagist Latest Releases for 09.27.2013
- slim/slim (2.3.2)
Slim Framework, a PHP micro framework - eloquent/pathogen (0.3.0)
General-purpose path library for PHP. - sdboyer/gliph (0.1.4)
A graph library for PHP. - entomb/slim-json-api (1.0.2)
Slim extension to implement fast JSON API's - alterphp/developer-bundle (1.0.0)
Tools for development - graste/environaut (v0.4.0)
Define, configure and protect your application environment and its requirements. - liip/rmt (0.9.9, 0.9.8)
Release Managment Tool - ryanve/traits (0.6.0)
PHP traits for making extensible classes. - dizda/cloud-backup-bundle (1.4.0)
Be able to backup your database(s) and upload it to the cloud (Dropbox, CloudApp, GoogleDrive, etc.) - scubaclick/oauth2 (v1.0)
Eloquent implementation for league/oauth2-server - toin0u/digitalocean-bundle (0.2.0)
Integration of DigitalOcean into Symfony2 - toin0u/digitalocean-laravel (0.2.0)
DigitalOcean API PHP 5.3+ library for Laravel 4 - toin0u/digitalocean-silex (0.2.0)
DigitalOcean API PHP 5.3+ library for Silex - doctrine/cache (v1.2.0)
Caching library offering an object-oriented API for many cache backends - toin0u/digitalocean (1.4.0)
DigitalOcean API PHP 5.3+ library - mthenw/nosqlite (v0.3.0)
Simple key => value store based on SQLite3 - dreamfactory/dsp-core (1.1.1, 1.1.0.3)
DreamFactory Services Platform(tm) Core - craue/formflow-bundle (2.1.2)
Multi-step forms for your Symfony2 project. - dreamfactory/lib-php-common-platform (1.1.0.3)
DreamFactory Services Platform(tm) Components Library - minime/annotations (1.3.3)
Minime / Annotations is a lightweight PHP annotation library - ddeboer/vatin-bundle (1.0)
Symfony2 bundle for the VATIN library - aptoma/twig-markdown (0.2.1)
Twig extension to work with Markdown content - stefano/stefano-tree (1.1.2)
Library for managing tree structures - webignition/html-document-link-finder (0.2.1)
Find anchor URLs in a given HTML document - nitecon/zf2-db-session (1.0.3, 1.0.2)
Zend Framework 2 database session storage - ddeboer/vatin (v1.1)
Validate VAT identification numbers - parm/parm (0.1.2)
Active Record ORM with closures and web interface - petebrowne/slim-layout-view (0.2.1)
A Custom View supporting Layouts for the Slim Framework. - akkroo/apiclient (v1.0.0)
Akkroo Public API client libraries - openbuildings/services-manager (0.2.1)
This modules purpose is to ease out the management of various external services that your application may depend upon - tonicospinelli/classgeneration (1.0.4, 1.0.3)
Library to create Php Class files - openbuildings/jam (0.4.21, 0.4.20)
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 - gta-cool/inuitcss-bundle (5.0.1, 5.0.2)
Integrates inuit.css framework in Symfony2 - openbuildings/jam-tart (0.2.13, 0.2.12)
Admin Builder for Kohana, using Jam ORM - bit3/contao-theme-plus (4.2)
Theme+ for Contao OpenSource CMS - crisu83/yiistrap-widgets (1.1.0)
Extension library for Yiistrap. - paypal/sdk-core-php (v1.5.0, v2.5.0)
PayPal Core SDK for PHP - cakedc/users (2.0)
Users Plugin for CakePHP - eden/core (1.0.6)
Eden Core component full of secret sauce - kitpages/file-system-bundle (v3.1.2)
Symfony Kitpages FileSystem Bundle. Abstraction layer for files (local, S3) - havvg/monolog-recursive-processor (v1.2.0)
A recursive log processor to convert context data. - symfony/symfony (v2.2.8)
The Symfony PHP framework - openbuildings/jam-locations (0.1.1)
Geoip and IP integration - iakumai/sphinxsearch-bundle (0.2.2, 0.2.1)
Sphinx search bundle for Symfony 2 - titon/utility (0.10.2)
The Titon utility package provides convenience classes for basic tasks like validation, formatting, sanitization and more. - mjohnson/uploader (4.3.4)
File uploader and validation plugin for CakePHP. - nitecon/zfcuser-ldap (1.1.0)
Zend Framework 2 ZfcUser LDAP Authentication
Reddit.com: Question about the relevance of benchmarking
On Reddit.com there's a new post from someone relatively new to PHP wondering what the relevance of benchmarks is in a time when most performant sites use caching (full page or data) to increase their speed.
I was speaking to another PHP developer today who is a lot smarter than me. I was curious about Static Site Generators taking over the future of the web. [He] told me that most of the time, big sites have a cache that people hit. So people don't even have to wait for PHP to be interpreted. This begs the question . . . How are performance metrics relevant for different frameworks, when these sites are being cached anyway?
There's several comments on the post now with a few different opinions like:
- "Most of the benchmarks you'll see are dishonest and/or skewed as they don't paint an accurate picture of what's going on, or how they would be used in the real world."
- "As soon as you start taking too much time to return a page to a user you have a knock-on effect where you develop a queue of other users waiting for their page to be returned as well."
- "So far as performance benchmarks go, the framework and language used in your application becomes redundant once you add a caching layer as the page performance is then limited by what caching layer you use."
- "as a rule of thumb "logged out users see cached content" "logged in users see uncached content""
Link: http://www.reddit.com/r/PHP/comments/1n5ygr/i_am_an_idiot_question_about_the_relevance_of
Engine Yard Blog: Deploying PHP Applications on Engine Yard: A How-To
Matthew Weier O'Phinney has written up an article for the Engine Yard blog walking you through the full process of getting a PHP site set up and working with their platform-as-a-service hosting.
I've been experimenting with a variety of cloud Platform as a Service (PaaS) offerings lately, and naturally was interested in seeing what Engine Yard brought to the table for PHP developers with its Engine Yard Cloud offering. Deployment of my application includes several non-trivial aspects, and I wanted to see how easy, or difficult, it was to accomplish each.
He lists some of his criteria (including deployment from a git repo, usage of Composer and cronjobs) and notes that the EY service matches all of his needs. The rest of the post goes into the details of the deployment, breaking it up into sections:
- Initial deployment: Git and Composer
- Private Configuration setup
- Deployment Tasks
- Cronjobs
- DNS
Link: https://blog.engineyard.com/2013/deploying-php-applications-on-engine-yard-a-how-to
Kristo Vaher: What you should know about API-centric web development and design
Kristo Vaher has an interesting post looking at a development technique that's becoming more and more popular among web applications - API centric design. More development is being focused around reusable APIs than just making applications. Kristo fills you in on a few things you need to know about this technique and some things to watch out for along the way.
Modern web applications are often anything but stateless and consist of layers upon layers of session handling and asynchronous requests, where users can log in and their functionality is dependent upon dozens of checks before a page is returned to their web browser. In order to manage this problem a little better, we have to take discover - or rediscover - something that has existed in desktop software development for a dozen years: API-centric development and design.
For those new to the topic, he explains what an API is and how centering your development focus on it can help in the long run. He suggests that the API should be the software and everything else - clients, outside users, etc - just interacts with it. Some solutions are offered to help encourage this development including:
- Using a MVC (Model/View/Controller) structure
- Starting from day one to develop the API
- Planning before writing any code
- How teams should be working together, but on different elements
Link: http://waher.net/archives/1158
David Adams: Zero to Jenkins - PHP Continuous Integration
David Adams has posted another screencast to YouTube, this time it's about setting up Jenkins for continuous integration in a PHP-based application. (His previous one about using PHP on Digital Ocean is here).
The tutorial walks you through the entire process, including creating the Vagrant configuration:
- Installing Jenkins via apt-get
- Setting up the commands needed to run jobs
- Configuring it to work with a Bitbucket project
- Installing plugins/upgrades
- Security configuration
He also shows some of the results of the job executions, both passing and failing. The video's about 50 minutes long, so it's not a quick installation but it is detailed.
Link: https://www.youtube.com/watch?v=PklYO2vYIfc
2013年9月26日星期四
Site News: Blast from the Past - One Year Ago in PHP
- Reddit.com: PHP and Continuous Integration
- Josh Adell: Interfaces and Traits: A Powerful Combo
- Ulf Wendel: Not only SQL injection: I don't trust you!
- ScreenFony.com: Work with bootstrap, assetic and less
- Gary Hokin: An Introduction to Zend Framework 2 for the Zend Framework 1 Developer - Part 1
- Thomas Hunter: CouchDB and PHP Web Development (Book Review)
- NetTuts.com: All About Mocking with PHPUnit
- NetTuts.com: Hands-On Unit Testing With PHPUnit (Screencast)
- Reddit.com: Avoid static methods at all costs? (testability)
- Igor Wiedler: Binary parsing with PHP
- Codeception Blog: The Locator Class
- Gonzalo Ayuso: The reason why singleton is a "problem" with PHPUnit
- Community News: Zend Framework Green ElePHPants for Pre-Order
- LearnComputer.com: Sending Text Messages with PHP
- Silver Lining Blog: How to Enable XDebug in Windows Azure Web Sites
Community News: Packagist Latest Releases for 09.26.2013
- solaris/php-dmarc (v1.0.0)
A simple DMARC report parser for PHP. - pagon/eventemitter (0.5.2)
Event Emitter for PHP - flaviozantut/skorry (v0.0.2)
Make fast your personal site! - samwilson/kohana_datalog (0.1.0)
A Kohana module for tracking changes to ORM entities. - squizlabs/php_codesniffer (1.5.0RC4, 1.4.7)
PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards. - indigo-soft/fuel-pdf (v1.0)
PDF driver for dfferent PDF libraries - silverstripe/framework (3.1.0-rc3, 3.0.7-rc1, 2.4.13)
The SilverStripe framework - silverstripe/cms (3.1.0-rc3, 3.0.7-rc1, 2.4.13)
The SilverStripe Content Management System - oodle/krumo (v0.3.1)
KRUMO - version 2.0 of print_r(); and var_dump(); (with new updates) - cyantree/grout-project (0.1.1)
project template for Grout apps - cyantree/grout-module-installer (0.0.2)
Installer for grout modules - n98/magerun (1.78.3)
Tools for managing Magento projects and installations - doctrine/phpcr-odm (1.0.0-RC1)
Object-Document-Mapper for PHPCR - dreamfactory/app-admin (1.1.0.3, 1.1.0.2, 1.1.0.1)
DreamFactory Services Platform(tm) Admin Application - marcj/php-rest-service (0.1.5)
PHPRestService is a simple and fast PHP class for server side RESTful APIs. - jaroslav-kubicek/mo-storage (v0.0.1)
MongoDB PHP session storage - jackalope/jackalope-doctrine-dbal (1.0.0-RC1)
Jackalope Transport library - jackalope/jackalope-jackrabbit (1.0.0-RC1)
Jackalope Transport library - crisu83/yiistrap-widgets (1.0.0)
Extension library for Yiistrap. - tonicospinelli/classgeneration (1.0.2)
Library to create Php Class files - mediawiki/parser-hooks (1.1)
Adds a OOP and declarative parser hook interface on top of MediaWiki - jackalope/jackalope (1.0.0-RC1)
Jackalope PHPCR library - awellis13/laravel-resque (1.0.5)
Laravel Resque connector for Queue. - phpcr/phpcr-utils (1.0.0-RC1)
PHP Content Repository implementation independant utilities - eden/registry (1.0.2)
Eden registry component - firesphere/silverstripe-newsmodule (2.3.2)
A ModelAdmin based newsmodule to prevent clutter in the SiteTree - openbuildings/jam (0.4.19, 0.4.18, 0.4.17)
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 - empregoligado/brazilian-phone-validator (v0.0.3)
Validator for Brazilian phone numbers - mako/app (3.5.1, 3.6.1)
Mako Framework - openbuildings/jam-locations (0.1.0)
Geoip and IP integration - mouf/interop.symfony.di (v0.1.0)
This package contains an implementation of the Symfony 2 DI container that can be extended using other DI containers (from other frameworks). - gumbyframework/gumby (2.5.6)
A Flexible, Responsive CSS Framework - Powered by Sass - buggymanhq/buggyman-module (v1.0.7)
- epiphany/service-cache-bundle (1.0.8, 1.0.4)
Cache or store responses from a Symfony2 service by annotating its methods - iakumai/sphinxsearch-bundle (0.2.0)
Sphinx search bundle for Symfony 2 - eden/core (1.0.4)
Eden Core component full of secret sauce - havvg/monolog-recursive-processor (v1.1.1, v1.1.0, v1.0.0)
A recursive log processor to convert context data. - behat/behat (v3.0.0beta6)
Scenario-oriented BDD framework for PHP 5.3 - dreamfactory/dsp-core (1.1.0.1)
DreamFactory Services Platform(tm) Core - dreamfactory/app-launchpad (1.1.0.1)
DreamFactory Services Platform(tm) LaunchPad Application - dreamfactory/service-oauth (0.2.2)
DreamFactory Oasys (Open Authentication SYStem) - tecnick.com/tcpdf (6.0.035)
TCPDF is a PHP class for generating PDF documents. - sigjlr/phpconfig (0.1.0)
Load INI configuration files - mcpruitt/file-queue (v1.0.0)
File based queue for laravel 4.0.x - claroline/core-bundle (1.3.6)
Claroline core bundle - jasonlewis/resource-watcher (v1.0.1)
Simple PHP resource watcher library. - amnl/mollie (v1.0.2)
PHP 5.3 library to communicate with Mollie (PSP). - slevomat/sglogistics-api (1.18)
SG Logistics client API Library - openbuildings/services-manager (0.2.0)
This modules purpose is to ease out the management of various external services that your application may depend upon - phpcr/phpcr (2.1.0-RC1)
PHP Content Repository interfaces - propel/propel-bundle (1.2.10, 1.2.9)
Integration of Propel in Symfony2 - mrynk/l4-hashids (v1.1)
A Laravel 4 package for the official hashids library - metaclass-nl/fit-shelf (v0.4)
reimplementation in PHP5 of the functionality of Fit Library as described in the book 'Fit for developing Software' of Rick Mugridge and Ward Cunningham - craue/config-bundle (1.1.2)
Database-stored settings made available via a service for your Symfony2 project. - mawelous/yamop-laravel (0.2.0)
Yet another MongoDB ODM for PHP as Laravel Component. Nothing unnecessary, with easy joins. - craue/geo-bundle (1.0.1)
Doctrine functions for calculating geographical distances in your Symfony2 project. - bit3/contao-dependency-container-inspector (1.0.1)
Inspector for the dependency container for Contao open source cms. - craue/twigextensions-bundle (1.0.1)
Useful Twig extensions for your Symfony2 project. - atukai/at-datagrid (0.3.0)
A data grid ZF2 module - barryvdh/laravel-debugbar (v0.1.0)
PHP Debugbar integration for Laravel - psi/stylepicker4ward (2.1.2)
CSS Class selection wizard for contao - indigo-soft/fuel-gravatar (v0.3)
Gravatar package to return avatar, profile data, QR-code, VCF - puovils/intervals (v1.0.0)
Manipulation with intervals - hwi/oauth-bundle (0.2.9)
Support for authenticating users using both OAuth1.0a and OAuth2 in Symfony2.
Russell Walker: Public properties, getters and setters, or magic?
Russell Walker has a recent post to his site looking at different ways to work with class properties including using them as public properties or using getters and setters.
Opinion seems to be divided on whether it is good practice to use public properties in PHP classes, or whether to use getter and setter methods instead (and keep the properties private or protected). A sort of hybrid third option is to use the magic methods __get() and __set(). As always, there are advantages and disadvantages to each approach, so let's take a look at them.
He breaks the rest of the post up into three sections, each with a bit of a code example and the common advantages/disadvantages. It's a good overview of the three types and, in the end, it's mostly about what works for your applications. What's his favorite?
My choice then is to use public properties most of the time, but getters and setters for critical settings that I feel need stricter control, would benefit from lazy loading, or that I want to expose in an interface.
Link: http://russellscottwalker.blogspot.co.uk/2013/09/public-properties-getters-and-setters.html
David Adams: PuPHPet and Digital Ocean (Screencast)
Over on YouTube David Adams has posted a video showing you how to use PuPHPet with Digital Ocean. PuPHPet is a easy to use, graphical tool to help make building Vagrantfiles quick and easy. Digital Ocean bills itself as a cloud service "built for developers" that lets you spin up cloud servers quickly.
The video's about 30 minutes long, but it walks you through the entire process. It's a screencast you can easily follow along with. Unfortunately some of the text is a bit small (and hard to read full-screen) but he talks you through the commands too, which helps.
You can find out more about Digital Ocean's "droplets" here.
Link: https://www.youtube.com/watch?v=dHkTxWffGGA
Systems Architect:API-based Web Application with Backbone, Require.js and Slim framework
On the Systems Architect blog there's a new post from Lukasz Kujawa about creating a simple API-based application combining Slim, Require.js and Backbone. The result is a single-page application that displays a template and a set of links pulled from the backend.
A single-page application (SPA) was something I've been exploring for the last few months. I always liked the idea of moving certain responsibilities to the client's side. After all, why would you like to waste server's RAM/CPU to buil a HTML page (and pay for a transfer to deliver it) when a web browser is perfectly capable of doing that on its own?
He's posted the full example to Github, but he does walk through all the code showing how the parts fit together. He starts with the HTML5 template and Javascript side of things, making a simple Backbone router and a "create" route. The views are rendered via the Lo-Dash templating and injected into the page.
As you can see it's all quite simple. The only problem is that you have to embrace multiple JavaScript frameworks at once but the boilerplate makes it much easier. What I really like about this setup is the structure. It's similar to how things are done in the back-end and it should be fine even with big applications.
Link: http://systemsarchitect.net/api-based-web-application-with-backbone-require-js-and-slimmvc-framework
SitePoint PHP Blog: Creating a Subscription-Based Website with Laravel and Recurly, Part 1
On the SitePoint PHP blog there's a post by Lukas White (part one of a series) showing you how to make a subscription-based website with Laravel and Recurely. Recurly is a subscription billing service that takes case of the recurring billing process.
In this two-part series I'll show you step-by-step how to create a paid subscription-based membership website using Laravel, a PHP5-based framework, and the Recurly payment processing service. First we'll start by creating a simple site with basic registration, authentication, and user roles and permissions. Then we'll add payment processing and tie it into the registration process, allowing people to purchase different membership tiers.
He walks you through the full process (well, the first part of it at least) to getting a new Laravel project up and going and a few other libraries you'll need to connect to the Recurly service. He creates a simple user table and roles/permissions functionality for the Authority connections. He also shows how to make the basic template, login mechanism and user registration system.
Link: http://www.sitepoint.com/creating-subscription-based-website-laravel-recurly-1/
2013年9月25日星期三
Community News: Latest Releases from PHPClasses.org
- PHP Ubuntu One BackupPackage:Summary:Send MySQL database backup files to Ubuntu OneGroups:Author:Description:This class can send MySQL database backup files to Ubuntu One...
Read more at http://www.phpclasses.org/package/8269-PHP-Send-MySQL-database-backup-files-to-Ubuntu-One.html - tormPackage:Summary:Store and retrieve objects using ActiveRecordGroups:Author:Description:This class can be used store and retrieve objects using ActiveRecord...
Read more at http://www.phpclasses.org/package/8254-PHP-Store-and-retrieve-objects-using-ActiveRecord.html - Ninja MutexPackage:Summary:Lock resources to prevent simultaneous accessesGroups:Author:Description:This package can lock resources to prevent simultaneous accesses from different processes...
Read more at http://www.phpclasses.org/package/8257-PHP-Lock-resources-to-prevent-simultaneous-accesses.html - Plesk Server APIPackage:Summary:Manage hosting accounts using the Plesk APIGroups:Author:Description:This class can manage hosting accounts using the Plesk API...
Read more at http://www.phpclasses.org/package/8251-PHP-Manage-hosting-accounts-using-the-Plesk-API.html - Multipart CSVPackage:Summary:Write data into multiple CSV files of limited sizeGroups:Author:Description:This class can write data into multiple CSV files of limited size...
Read more at http://www.phpclasses.org/package/8250-PHP-Write-data-into-multiple-CSV-files-of-limited-size.html - Debug InfoPackage:Summary:Output information about variables and other dataGroups:Author:Description:This class can output information about variables and other data...
Read more at http://www.phpclasses.org/package/8264-PHP-Output-information-about-variables-and-other-data.html - Basic Auto-loaderPackage:Summary:Register auto-loader for classes defined in arraysGroups:Author:Description:This class can register an auto-loader for classes defined in arrays...
Read more at http://www.phpclasses.org/package/8270-PHP-Register-auto-loader-for-classes-defined-in-arrays.html - DebugInfoPackage:Summary:Output information about variables and other dataGroups:Author:Description:This class can output information about variables and other data...
Read more at http://www.phpclasses.org/package/8264-PHP-Output-information-about-variables-and-other-data.html - Horas LaboralesPackage:Summary:Calculate the number of worked hours between datesGroups:Author:Description:This class can calculate the number of worked hours between dates...
Read more at http://www.phpclasses.org/package/8261-PHP-Calculate-the-number-of-worked-hours-between-dates.html - Tree QueryPackage:Summary:Generate conditions to get tree elementsGroups:Author:Description:This class can generate conditions to get tree elements...
Read more at http://www.phpclasses.org/package/8248-PHP-Generate-conditions-to-get-tree-elements.html - AutocompletePackage:Summary:Suggest words to complete search using edge n-gramGroups:Author:Description:This class can suggest words to complete search using the edge n-gram algorithm...
Read more at http://www.phpclasses.org/package/8230-PHP-Suggest-words-to-complete-search-using-edge-n-gram.html - PHP Detect Device TypePackage:Summary:Detect the type of device the user is usingGroups:Author:Description:This class can detect the type of device the user is using...
Read more at http://www.phpclasses.org/package/8256-PHP-Detect-the-type-of-device-the-user-is-using.html - IFrameYouPackage:Summary:Generate HTML to embed video playersGroups:Author:Description:This class can generate HTML to embed video players...
Read more at http://www.phpclasses.org/package/8249-PHP-Generate-HTML-to-embed-video-players.html - PHP Spearman Rank CorrelationPackage:Summary:Compute the Spearman Correlation and draw resultsGroups:Author:Description:This class can compute the Spearman Rank Correlation and draw the results...
Read more at http://www.phpclasses.org/package/8226-PHP-Compute-the-Spearman-Correlation-and-draw-results.html - PHP Convex HullPackage:Summary:Find a convex shape that contain a set of pointsGroups:Author:Description:This class can find a convex shape that contain a set of points known as the convex hull...
Read more at http://www.phpclasses.org/package/8220-PHP-Find-a-convex-shape-that-contain-a-set-of-points.html - PHP Compare Images SimilarityPackage:Summary:Compare two images to find if they are similarGroups:Author:Description:This class can compare two images to find if they are similar...
Read more at http://www.phpclasses.org/package/8255-PHP-Compare-two-images-to-find-if-they-are-similar.html