Feed aggregator
Phil Sturgeon: Testing and Contributing with Composer Packages
Phil Sturgeon has posted a guide to his site about running tests and contributing back to packages that live in Composer.
While Composer has been around for a while now, many packages are still in their infancy (< 1.0) or sometimes are just not as feature filled as they could be. To be fair there is always more to be done. It can always do more, or do the same thing more efficiently. Whatever the case, pull requests are going to be a common thing for the PHP community to be doing to these packages and this needs to be done safely, with unit-testing. So, how do you run their test suite and add your own tests?He includes a step-by-step guide to getting the environment set up to run the package's tests and how to add some of your own. He includes the commands to send the pull request back up to Github (on your own fork, of course) and how to use that same fork as your package resource until the main project is updated.
Link: http://philsturgeon.co.uk/blog/2013/05/testing-contributing-composer-packagesSameer Borate: Efficiently Replicating RETS data to MySQL
Sameer Borate has a new post to his site that shares how he converted a RETS database to MySQL with the help of a PHP library, PHPRETS.
A recent project of mine entailed replicating a RETS database on a local MySQL database server. The client had a new real-estate mobile search app in development and wanted to have a local copy of the RETS database for search queries instead of a remote RETS server. [...] Replicating RETS data rather than using the live version is slightly complex, however. In order to replicate the RETS data into your own local database, a series of processes are needed in order to make sure the data you have is both updated and in sync with the server.He breaks it down into three main steps with some sample code for each:
- Grabbing the complete database once
- Keeping the data in sync
- Ensuring the cron job is executed on regular intervals
Francesca Krihely: On the Developer Experience
In a new post to her site Francesca Krihely starts looking at the developer experience - how developers relate to your service and product and what kinds of things you need to be doing to help engage them.
I had a great brainstorm a few weeks back with the members of the Developer Evangelists meetup on the topic of the User Journey, or as I'll call it now, the Developer Experience. The main problem we wanted to solve was how we convert new users into experts or awesoms users. In many ways, a Community Manager and/or Developer Evangelist is responsible for driving user adoption and making users successful, so this is a topic near and dear to all of our hearts. I walked away with three key things that help improve the developer experience: Great Product, Great Support and Empowerment.This post talks about the first point - the "great product" - and notes that, if the product isn't useful and enjoyable to use, even developers won't bother with it. She also talks some about the need for quality documentation and how it can be seen as a sort of "marketing" to developers.
Work on making your product fit for an awesome developer experience. If you build it, they will come. Link: http://francescak.me/blog/2013/05/02/on-the-developer-experienceCommunity News: Packagist Latest Releases for 05.03.2013
- f21/paradox (1.2.0)
Paradox is an elegant Object Document Mananger (ODM) to use with the ArangoDB Document/Graph database server.
- jstayton/google-maps-geocoder (v2.0.2)
A PHP wrapper for the Google Maps Geocoding API v3.
- icecave/duct (0.1.0)
Parse continuous streams of JSON objects.
- discordier/justtextwidgets (0.5.2)
Hidden fields with text values and explanation texts
- covex-nn/joos-stream (4.0.0)
PHP stream wrapper, transactional virtual file system
- benjaminlazarecki/scarepiceditor-bundle (0.1.0)
Provides an EpicEditor integration for your Symfony2 Project.
- clubmaster/extra (1.2)
ClubMaster extra bundle
- silverorange/net_notifier (v0.4.1, v0.4.0)
An asynchronous notification system using WebSockets
- google/api-client (0.6.2)
PHP Client for Google APIs
- pihi/industrial (0.4.0)
Dependency Injection for PHP 5.3
- dreamfactory/app-launchpad (v1.0.1)
DreamFactory Services Platform(tm) LaunchPad Application
- aequasi/memcached-bundle (1.2.4.1, 1.2.4, 1.2.3.10)
Memcached Bundle
- herrera-io/go (1.3.5, 1.3.6)
A simple PHP build tool.
- hautelook/templated-uri-bundle (v0.2.2)
Symfony2 Bundle that provides a RFC-6570 compatible router and URL Generator.
- herrera-io/service-process (1.1.2)
A service provider for Symfony Process.
- sanyatuning/sanyaform (0.3.0)
ZF2 module extending Zend Form
- simplon/helper (0.5.10)
General helpers which come-in helpful.
- packfire/framework (2.1.0)
The rapid-development object-oriented framework for PHP. Be surprised at how fast you can build a web application with a pack of fire.
- zweifisch/zf (v0.0.4)
a micro php web/cli framework/router
- fuelphp/upload (2.0)
Uploaded file processing.
- denits/yii-apiauth (v1.0.0-beta)
HTTP authentication for automated requests
- chh/pipe (v1.0.0beta1)
Put your assets into the Pipe and smoke them.
- chh/meta-template (v1.0.0beta1)
Templating solution with adapters to many engines.
- zf-commons/zfc-base (v0.1.2)
A set of genetic (abstract) classes which are commonly used across multiple modules.
- zf-commons/zfc-user (0.1.2)
A generic user registration and authentication module for ZF2. Supports ZendDb and Doctrine2.
- kbsali/redmine-api (0.4.7)
Redmine API client
- bjyoungblood/BjyAuthorize (1.2.5)
ZendAcl based firewall system for ZF2 dispatch protection
- bjyoungblood/bjy-authorize (1.2.5)
ZendAcl based firewall system for ZF2 dispatch protection
- mauris/yaml (1.0.0)
Mauris Build of the Symfony Yaml Component
- ajt/guzzle-asana (0.9.1)
Asana API client written on top of Guzzle PHP.
- craue/config-bundle (1.1.1)
Database-stored settings made available via a service for your Symfony2 project.
- widop/google-analytics-bundle (1.0.1)
Google certificate-based authentication in server-to-server interactions with google analytics
- xi/test-selenium (0.3.1, 0.3.0)
Selenium 2 bindings
- graze/event (0.1.3)
Simple event pub-sub
- kitpages/data-grid-bundle (v1.6.1)
Symfony DataGridBundle
- puddin/helpers (1.0.0)
Helper classes to make your life easier
- aoyagikouhei/pg (0.0.3)
PHP Class for PostgreSQL
- simonwelsh/gridfieldrelationhandler (1.0.1, 1.0)
This module provides two GridField components that aid in managing relationships within SilverStripe.
Site News: Popular Posts for the Week of 05.03.2013
- Software Gunslinger: PHP is meant to die, continued
- Community News: Latest PEAR Releases for 04.29.2013
- NetTuts.com: HTTP: The Protocol Every Web Developer Must Know - Part 2
- PHPMaster.com: Better Understanding Random
- PHPMaster.com: An Introduction to Ctype Functions
- Reddit.com: How to progress my PHP skills?
- Chris Hartjes: Testing Smells - Try/catch
- Lorna Mitchell: What Goes in Source Control?
- Community News: Packagist Latest Releases for 04.27.2013
- Rob Allen: Injecting configuration into a ZF2 controller
Inviqa techPortal: Functionally Testing You Application Using Mink
On the Inviqa TechPortal today there'a a new post from Konstantin Kudryashov showing you how to use Mink for functional testing (an extension of Behat) of you web application.
Automated testing is big news these days. There's hardly a PHP conference happening without a talk on testing automation or derivative methodologies. TDD (Test-Driven Development) and BDD (Behaviour Driven Development) are all around us. So why should you care about all this? [...] The more complex an application becomes, the harder it is to be sure that each new feature or bug fix won't break the system, and that decreases your overall confidence in your work as developer. That's exactly the reason why you need automated testing - to be confident that you're not breaking important parts of an application.For his examples he uses a simple Silex-based application (found here on github) that just shows a main page and an "add article" page that returns a preview when submitted. He shows how to get Behat/Mink installed and how to bootstrap PHPUnit to allow you to execute your tests. Also included is a sample test that clicks the "Add Article" link, runs a few checks and fills in some data. The form is submitted and the "preview" page is checked for valid results.
Link: http://techportal.inviqa.com/2013/05/02/functionally-testing-your-application-using-minkPHPMaster.com: Crop and Resize Images with ImageMagick
PHPMaster.com has a new tutorial posted showing you how to crop and resize images with the help of the ImageMagick functionality that can be added to PHP (via this extension).
If your website allows users to upload photos, image cropping/resizing functionality certainly comes in handy. But users might not have access to image manipulation tools like Photoshop, so by providing a cropping/resizing feature you can allow users to upload photos from any device (e.g. tablets or phones) without them having to worry about the the final size. Furthermore, you can create different versions of the same image and also allow users to crop specific portions of uploaded picture. In this article I'll show you how to create an image cropping tool with the help of the ImageMagick PHP extension.The post shows the use of the "cropimage" function to trim down an image from its original size and "thumbnailImage" to shrink down the image to make a thumbnail. Also included is the code (both the PHP and the HTML form) to handle file uploads and automatically create a thumbnail image. It outputs the image to the browser and asks the user to select the portion they want thumbnailed (with this jQuery plugin helping).
Link: http://phpmaster.com/crop-and-resize-images-with-imagemagickMaltBlue.com: Use RouteMatch in Zend Framework 2 For Easy Routing
In the latest to his site Matthew Setter takes a look at easy routing with RouteMatch in Zend Framework 2 applications. The RouteMatch component gives you better control over your routing and lets you define "match paths" for URL to Controller mappings.
Today using Zend Framework 2 RouteMatch, Router and Request objects, I show you an easy way to dynamically update the current route. It's almost painlessly simple. [...] Well, like most things in web application development, what starts out simply in the beginner often grows more complex over time. So too is my once simple route.His "simple" route started getting a bit out of control when he added in some pagination to the page (and query for the path match). He wanted to figure out how to re-render data with the same filters but show the next page of data. He shows how to use the RouteMatch component to achieve just this. He creates a custom module with a "listViewToolbar" helper that lets you read the router, request and handle the parameters sent via the URL. The "invoke" method is called to render the toolbar in the page, complete with the new settings.
Link: http://www.maltblue.com/tutorial/use-zend-framework-2-routematch-for-dynamic-routingSabreDAV acquired by fruux

Last week we have finished the talks to transfer ownership of the SabreDAV project to fruux.
I've been working at fruux as a lead-dev for some time now, and SabreDAV is really at the core of everything we do, so this was a logical and inevitable choice.
To me it's an important step. SabreDAV has been one of the very little things that have remained consistent in my life. This validates my work from the last 6 years a bit. In another way it feels a bit like I'm letting go something that's very important and personal.
However, I'll still be running the project so in reality the change for me personally is not that big :).
What's SabreDAV?SabreDAV is an open-source project that I've started all the way 2007. It allows you to write WebDAV, CalDAV and CardDAV servers in PHP. These three technologies allow you to do file, calendar and addressbook syncing.
A few years ago steam really picked up, and it changed from the hobby project that it was back then, to something I could actually make a living off by doing consulting.
In 2012 I've took it one step further, and teamed up with fruux to build a commercial product around SabreDAV.
What will change?Small stuff really. The GitHub urls have changed. The new project pages are:
- https://github.com/fruux/sabre-dav
- https://github.com/fruux/sabre-vobject
- https://github.com/fruux/sabre-xml
A bigger change is that fruux will now be the official go-to place for commercial support. I feel this will strengthen the SabreDAV project, especially for the potential users that are into that sort of thing.
It also means that getting a new website is in the cards :). The current one has passed it's expiry date.
Does this mean SabreDAV will go closed-source?No. I would never let this happen. SabreDAV will remain as open source as it has always been, and we also don't intend on making it crippleware.
The BSD license in place today is very liberal, and I feel that it's exactly this that has allowed many projects and businesses to adopt it. Taking that away would not only damage the project, it would also feel ethically wrong.
However, SabreDAV is primarily a library, suitable for integration into other systems. We're definitely looking into the possibility of offering a more complete package, such as a standalone server with solid management interfaces.
Thanks!Thanks everyone for your continued support, pull requests and relying on SabreDAV for your projects :). It's the best reward, really.
If you're interested, also check out the announcement on the fruux blog
Dougal Campbell: WordPress 10th Anniversary Blogging Project
Dougal Campbell has a new post to his site with his own contribution to the "WordPress 10th Anniversary Blogging Project" - a remembrance of his history with the tool and where/when he first started using it.
The official 10th anniversary of the release of WordPress is May 27, 2013. It has been an amazing 10 years, during which WordPress evolved from a simple blogware to a very full-featured CMS (Content Management System), used to power some of the biggest and most popular web sites on the internet. All over the world, people are planning celebrations. As much as I like a good party, I thought this would also be a good time to celebrate WordPress by actually using WordPress - for blogging.He talks some about when he got started with WordPress (2003) and what's happened since. He suggests that others follow suit and use the "#wp10" hashtag on Twitter to share their own posts.
Link: http://dougal.gunters.org/blog/2013/05/01/wordpress-10th-anniversary-blogging-projectJosh Adell: Serializing Data Like a PHP Session
In this new post Josh Adell looks at working with PHP sessions and how you can manually encode data to look as if it came from the normal session handling.
If you have ever popped open a PHP session file, or stored session data in a database, you may have noticed that this serialization looks very similar to the serialize function's output, but it is not the same. Recently, I needed to serialize data so that it looked like PHP session data (don't ask why; I highly suggest not doing this if it can be avoided.) It turns out, PHP has a function that encodes data in this format: session_encode.Unfortunately, this method doesn't take arguments - it just outputs the encoded version of the current session data. So, he came up with his own encode/decode methods that use the PHP session, extract the serialized string and return it.
Link: http://blog.everymansoftware.com/2013/05/serializing-data-like-php-session.htmlCommunity News: Packagist Latest Releases for 05.02.2013
- elefant/app-wiki (0.9.1-beta)
Wiki app for the Elefant CMS
- aequasi/memcached-bundle (1.2.3.9, 1.2.3, 1.2.1)
Memcached Bundle
- mandrill/mandrill (1.0.25)
API client library for the Mandrill email as a service platform
- ladela/personal-translations-widget-bundle (v0.2.6.1, v0.2.6)
Adds translations widget based on Personal translations
- thetwelvelabs/foursquare (v0.2.0)
Foursquare API Client
- skillberto/jqueryform (1.0)
This JavaScript file create HTML DOM with jQuery.
- dwolla/dwolla-php (1.5.3)
Official PHP Wrapper for Dwolla's API
- anroots/kohana-yaml (2.1.0, 2.0.2)
YAML config/i18n reader/writer for the Kohana Framework, fork of gevans/kohana-yaml
- jenwachter/data-encoder (0.3)
A PHP library to make it easier to create XML using the DOM Document object.
- closestdate/closestdate (1.1.0, 1.0.0)
Utility class for find the closest date in PHP 5.3+
- onemightyroar/php-activerecord-components (1.0.7)
Useful common components for a php-activerecord based project
- bear/package (0.7.0)
BEAR.Sunday application package
- segmentio/analytics-php (0.4.4)
Segmentio Analytics PHP Library
- triagens/arangodb (v1.2.1)
ArangodDb PHP client
- rah/textpattern-plugin-installer (1.0.0-alpha.4)
Textpattern plugin installer
- mediawiki/core (1.20.5)
Free software wiki application developed by the Wikimedia Foundation and others
- ocramius/proxy-manager (0.3.4)
A library providing utilities to generate, instantiate and generally operate with Object Proxies
- graze/event (0.1.2, 0.1.1, 0.1.0)
Simple event pub sub
- brtriver/dbup (v0.2, v0.1)
simple migration tool with PDO
- symfony/symfony (v2.3.0-BETA1)
The Symfony PHP framework
- hautelook/templated-uri-bundle (v0.2.1)
Symfony2 Bundle that provides a RFC-6570 compatible router and URL Generator.
- sammaye/mongoyii (1.2.1)
A Yii MongoDB ORM
- bear/sunday (0.7.3)
BEAR.Sunday, a resource oriented framework
- bear/ext-web-response (0.7.3)
BEAR.Sunday template engine extension
- bear/ext-template-engine (0.7.3)
BEAR.Sunday template engine extension
- bear/ext-router (0.7.3)
BEAR.Sunday router extension
- bear/ext-resource-view (0.7.3)
BEAR.Sunday resource view extension
- bear/ext-console-output (0.7.3)
BEAR.Sunday console output extension
- bear/ext-application-logger (0.7.3)
BEAR.Sunday application logger extension
- bear/ext-application (0.7.3)
BEAR.Sunday application extension
- geekality/transposer (v1.4.2)
Plain text song parser and chord transposer
- kvdh/symfony-twitter-bootstrap (v2.3.1)
Twitter Bootstrap vendor package for Symfony 2.x
- gpmd/ss-bootstrap (v1.0.1)
Twitter Bootstrap / HTML5 Boilerplate theme for Silverstripe 3
- phpspec/phpspec (2.0.0-BETA3)
Specification-oriented BDD framework for PHP 5.3+
- castanet/userid (0.0.5)
Emulate Nginx's HTTP Userid module
- bartosz-maciaszek/php-rtm (1.0.3)
Remember The Milk API client for PHP
- bear/ace (0.1.1)
Ace online editor utility
- lwc/smartling-php (0.0.2)
PHP client for Smartling's file API
Site News: Blast from the Past - One Year Ago in PHP
- PHPMaster.com: REST - Can You do More than Spell It? Part 1
- PHP-Security.net: New PHP-CGI Exploit (CVE-2012-1823)
- PHPMaster.com: REST - Can You do More than Spell It? Part 2
- PHPMaster.com: PHP Security: Cross-Site Scripting Attacks (XSS)
- Fawad Hassan's Blog: Load More Using KnockoutJS, PHP/CodeIgniter (Part 1)
- Kevin Schroeder's Blog: ZF2 Dependency Injection - Multiple Object Instances
- PHPMaster.com: An Introduction to Redis in PHP using Predis
- Software Development Video & Tutorials: PHP and Couchbase
- Web and PHP Magazine: Issue #2 Released - "PaaS with Flying Colors"
- MaltBlue.com: Zend Form Mastery with Zend Config - Part 1, Custom Filter Paths
- Lorna Mitchell's Blog: Tips on Writing an API for a Smartphone App
- PHP.net: PHP 5.3.12 and PHP 5.4.2 Released!
- ServerGrove Blog: Spooling emails with Symfony2 on VPS and Shared Hosting
- Rob Allen's Blog: Unit testing Zend Framework 1
- PHP-Security.net: Suhosin 0.9.34-DEV Installation HowTo
Functionally Testing Your Application Using Mink
Automated testing is big news these days. There's hardly a PHP conference happening without a talk on testing automation or derivative methodologies. TDD (Test-Driven Development) and BDD (Behaviour Driven Development) are all around us. So why should you care about all this? Well, there are many excellent reasons to do automated testing, including assuring application quality and inspiring developer confidence in a system. If you are a business person, you're most likely to care about the quality; if you're a developer then the confidence aspect is more important. The more complex an application becomes, the harder it is to be sure that each new feature or bug fix won't break the system, and that decreases your overall confidence in your work as developer. That's exactly the reason why you need automated testing - to be confident that you're not breaking important parts of an application.
Now you're convinced that automated testing is important, but isn't unit testing enough? Unit tests are cheap, fast and small. Why might you want to expand into using a technique such as functional testing? Once again the answer is confidence. The more complicated an application becomes, the more complicated the interactions between separate parts of the application become. Just as you can't be confident your car is roadworthy by manually turning each of its wheels independently, you can't be sure that an entire application is working by testing each of its units independently. You need functional testing for complex applications - and today, that's every application.
SilexSilex is a PHP microframework based on Symfony2 components. It has rapidly become a popular tool in the Symfony2 community thanks to its simplicity and shallow learning curve. That said, the simplicity of Silex does not mean that it is only fit for simple applications, in fact the opposite is true. Some types of application, like RIAs (Rich Internet Applications) are better built with PHP and the minimalism of Silex.
As an application becomes more complex, so it becomes more important to properly test it. Silex provides some tools for functional testing using the Symfony2 BrowserKit component. This is useful, but what if some of of the application's functionality requires real HTTP requests to be made? Those could be done using a console browser emulator like Goutte. How about if some functions depend on AJAX to behave properly? Using Selenium or even Zombie.js could be a good option in that case.
There are two problems with all the solutions mentioned here:
- There's simply no single best choice in terms of browser emulation. Some emulators (BrowserKit, Goutte) are extremely fast, but don't support AJAX. Others (Zombie.js, Selenium) support AJAX but are much slower. In an ideal world, you would want to use multiple emulators at the same time, choosing the best one for each specific case. That leads us to problem #2.
- Different browser emulators are written in different languages (PHP, JS, Java), using different libraries and provide extremely inconsistent APIs for developers to work with. That means it is difficult to switch from one emulator to another as it will require all helpers and testing tools be rewritten.
To help solve some of these problems, a library called Mink was written. It was created originally as a complementary tool for Behat, but is not tightly coupled to Behat itself and so it can also be used with any framework or tool out there. Mink is a browser emulator abstraction layer - a tool that removes the differences between the various browser emulators and provides one single API through which you can control them all. This essentially means you can switch from browser emulator to browser emulator quite seamlessly as they all use the same PHP API. This article will show you how to use Mink to functionally test an example Silex application using a couple of different browser emulators.
Setting UpAs our test application we'll use a very simple Silex blog application that is already prepared for you. The code is on github at https://github.com/everzet/silex-mink so use that as your starting point.
Set Up the Test SuiteIn order to install and integrate Mink, Silex and PHPUnit, some extra entries are needed in composer.json. The new sectio
Truncated by Planet PHP, read more at the original (another 37475 bytes)
Universal Database Tools - DtSQL 2.4.1 is released (FREE)
DtSQL is a FREE universal database query and editor tools for developers and database administrators to Query, Edit, Browse, and Manage Database objects such as tables, views, indexes, procedures, functions, triggers, contraints and sequences. It can access most databases and can be used on all major operating systems.
- Supported databases : Cache, DB2, Derby, Firebird, FrontBase, H2, HSQLDB, Informix, Ingres, JDatastore, MaxDB, Mckoi, Mimer, MySQL, Oracle, PointBase, PostgresSQL, Solid, SQLite, SQL Server, SQL Anywhere, Sybase (ASE).
- Support Operation Systems : Windows, Linux and Mac OS.
- Database Browser Tools : browse schemas, tables, columns, primary and foreign keys, constraints, views, indexes, triggers, stored procedures, functions, sequences, and so on.
- Database Tools : create, alter, view and drop database tables, views, indexes, constraints, stored procedures, functions, triggers, sequences, and so on.
- Database Management Tools : edit database table data including binary/BLOB and CLOB data types. Filter, sort and search query result. Insert, duplicate, update, and delete database table data. Find and replace database data, preview generated SQL. Redo or undo last table data change before update is commit.
- SQL Tools : tools to edit, format and execute SQL scripts.
- SQL Builder : help tools to build database select, insert, update, delete SQL scripts.
- Import Data : tools to import data from various formats such as CSV files, Excel files, and fixed-width files. Parse import data according to integer, date, time, timestamp, and boolean pattern.
-
Export Data : tools to export database data (single table/multiple tables/query result) in various formats such as CSV files, Excel files, XML, HTML, SQL insert statements and fixed width files. Format export data according to applied integer, date, time, timestamp, and boolean pattern.
-
FREE to use.
-
Home: http://www.dtsql.com
Chris Hartjes: Testing Smells - Try/catch
In this new post to his site Chris Hartjes gives an example of what he calls a "testing smell". This particular illustration deals with the poor handling of testing and exceptions with try/catch blocks.
As part of a project to migrate the PHP code at work from PHP 5.2 to PHP 5.4, I'm using our extensive test suite to look for instances where something that changed between the versions of PHP that we are using has caused some unexpected behaviour. In one of our code bases, I found some tests that are exhibiting a test smell through their use of a try / catch block in the test itself.He includes a (contrived) example showing the use of an exception in a unit test to run an assertion in the "catch" for the test to pass. He points out that this particular check is being done to see if the user input is valid...and that it's a bad way to enforce it using exceptions. He also suggests that if you have an "if" situation, don't use one test with logic in it, write two tests. He mentions a disenting opinion but notes that a failing test is a failing test, regardless of what caused the failure.
Link: http://www.littlehart.net/atthekeyboard/2013/04/30/testing-smells-try-catchphp|architect: April 2013 Issue Released
The php|architect magazine has released their latest issue - the April 2013 edition focusing on security:
The April issue is out and it's all about Security! We cover the gambit of topics including two-factor authentication, password hashing and securing file uploads. All our regular columns also appear, making this a jam-packed magazine full of PHP goodness.Articles in this month's edition include:
- Securing File Uploads - Chris Tankersley
- Best Practices for Password Hashing in PHP - John Congdon
- Security-driven Development - Beth Tucker-Long
- When a Password Isn't Enough: Two-factor Authentication and You - Chris Stone
Check out the php|architect site for more info on picking up your own copy.
Link: http://www.phparch.com/2013/04/phparchitect-april-issue-securityAlvaro Videla: Using RabbitMQ in Unit Tests
Alvaro Videla has a new post today showing how he used RabbitMQ in his unit testing runs with a small, quickly installed version of the server that can be removed once the tests are complete.
In this blog post I want to show you a very simple technique for using RabbitMQ in our Unit or Functional Tests. Let's say you wrote a bunch of tests for your RabbitMQ consumers and then it's time to run them. To do that you probably need to setup a RabbitMQ server just for tests with their own users and passwords, or you need to set up a whole new virtual host for your tests. [...] With a future release of RabbitMQ that we can already test on the nightlies website, we can run RabbitMQ without the need to install Erlang. We created a package that ships a stripped down version of Erlang together with the broker bits, so running RabbitMQ now is as easy as downloading a tarball, uncompressing it and starting the server.With a combination of this more self-contained package and some listener handling through PHPUnit, they uncompress the tarball with a PHP script and start the server with the defined configuration. Then, once the tests are done, it cleans itself up and removes the entire server directory to make for a clean run the next time.
Link: http://videlalvaro.github.io/2013/04/using-rabbitmq-in-unit-tests.htmlCommunity News: Packagist Latest Releases for 05.01.2013
- bear/sunday (0.7.2, 0.7.1)
BEAR.Sunday, a resource oriented framework
- bear/application-logger (0.7.2, 0.7.1)
BEAR.Sunday application logger extension
- bear/resource-view (0.7.2)
BEAR.Sunday resource view extension
- eloquent/pbkdf2-compat (0.1.0)
A compatibility library for the PHP 5.5 function hash_pbkdf2().
- aequasi/memcached-bundle (1.0.0)
Memcached Bundle
- aws/aws-sdk-php (2.3.1)
AWS SDK for PHP
- rcrowe/twigbridge (0.3.0)
Adds the power of Twig to Illuminate / Laravel 4
- phery/phery (2.5.0)
XAJAX alternative, phery.js is a library in PHP that maps to all jQuery functions, DOM manipulation, meta arguments and serialization, seamless ajax integration, RESTful emulation, form submission and partial rendering views, plus its PSR-0 compatible
- phpygments/phpygments (1.0.1)
Syntax highlighter bridge for pygments
- guzzle/guzzle (v3.4.3)
Guzzle is a PHP HTTP client library and framework for building RESTful web service clients
- guzzle/http (v3.4.3)
HTTP libraries used by Guzzle
- bit3/contao-theme-plus (4.0.0-rc5)
Theme+ for Contao OpenSource CMS
- ircmaxell/password-compat (1.0.3, 1.0.2, 1.0.1)
A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash
- mf2/mf2 (v0.1.12, v0.1.11)
A pure (generic) microformats-2 parser
- onemightyroar/php-activerecord-components (1.0.6)
Useful common components for a php-activerecord based project
- bistro/router (1.0.2, 1.0.1, 1.0.0)
A route engine for PHP >= 5.3
- simplon/helper (0.5.9, 0.5.8)
General helpers which come-in helpful.
- guzzle/plugin (v3.4.3)
Guzzle plugin component containing all Guzzle HTTP plugins
- guzzle/plugin-mock (v3.4.3)
Guzzle Mock plugin
- ncsuwebdev/base-otf-app (1.0.2)
Base app for creating an OTF app
- rah/textpattern-plugin-installer (1.0.0-alpha.3)
Textpattern plugin installer
- ncsuwebdev/otframework (3.0.1)
Base application framework
- swiftmailer/swiftmailer (v5.0.0)
Swiftmailer, free feature-rich PHP mailer
- kamisama/cake-resque (3.3.4)
A CakePHP plugin for creating background jobs with Resque
- sanyatuning/sanyaform (0.2.0)
ZF2 module extending Zend Form
- mikealmond/musicbrainz (v0.1.0)
A PHP library for accessing the MusicBrainz API
- mikealmond/coverartarchive (v0.1.0)
A PHP library for accessing the CoverArtArchive API
- socalnick/scn-http-cache (1.0.6, 1.1.3)
Adds several features to help make ZF2 applications cacheable.
- bear/application (0.7.2, 0.7.1)
BEAR.Sunday application extension
- bear/web-response (0.7.2, 0.7.1)
BEAR.Sunday template engine extension
- bear/template-engine (0.7.2, 0.7.1)
BEAR.Sunday template engine extension
- elefant/app-form (1.0.4-stable, 1.0.3-stable)
Form builder app for the Elefant CMS
- kvdh/symfony-modernizr (2.6.2)
Modernizr vendor package for Symfony 2.x
- kvdh/symfony-twitter-bootstrap (2.3.1)
Twitter Bootstrap vendor package for Symfony 2.x
- kvdh/symfony-jquery (2.0.0, 1.9.1)
jQuery vendor package for Symfony 2.x
- laiz/laiz-template (v1.2.1, v1.2.0, v1.1.2)
Simple template engine
- paypal/buttonmanager-sdk-php (v2.3.101)
PayPal buttonmanager SDK for PHP
- paypal/merchant-sdk-php (v2.3.101)
PayPal Core SDK for PHP
- paypal/invoice-sdk-php (v2.3.101)
PayPal invoice SDK for PHP
- paypal/permissions-sdk-php (v2.3.101)
PayPal permission SDK for PHP
- paypal/adaptiveaccounts-sdk-php (v2.3.101)
PayPal adaptiveaccounts SDK for PHP
- paypal/adaptivepayments-sdk-php (v2.3.101)
PayPal adaptivepayments SDK for PHP
- phpspec/phpspec (2.0.0-BETA2)
Specification-oriented BDD framework for PHP 5.3+
- symfony-cmf/routing (1.0.1)
Extends the Symfony2 routing component for dynamic routes and chaining several routers
- phpspec/prophecy (v1.0.1)
Highly opinionated mocking framework for PHP 5.3+
- icecave/archer (0.3.1)
PHP testing and continuous integration by convention.
- icecave/woodhouse (0.4.3)
Publish build artifacts and status images to your GitHub pages.
- janisto/yii-ycm (0.5.0)
YCM - Yii Content Management module
- janisto/yii-chosen (1.4.0)
Yii Widget for Chosen - Chosen is a JavaScript plugin that makes long, unwieldy select boxes much more user-friendly.
Community News: Latest Releases from PHPClasses.org
- VS ActiveRecord
Package:Summary:Map database records to objects with ActiveRecordGroups:Author:Description:This class can map database records to objects with ActiveRecord...
Read more at http://www.phpclasses.org/package/8037-PHP-Map-database-records-to-objects-with-ActiveRecord.html
- PHP YouTube Feed Parser Class 2013
Package:Summary:Parse a YouTube feed to extract video informationGroups:Author:Description:This class can parse a YouTube feed to extract video information...
Read more at http://www.phpclasses.org/package/8040-PHP-Parse-a-YouTube-feed-to-extract-video-information.html
- objSQL
Package:Summary:Access different databases with the same interfaceGroups:Author:Description:This package can access different databases with the same interface...
Read more at http://www.phpclasses.org/package/8033-PHP-Access-different-databases-with-the-same-interface.html
- PHP MVC
Package:Summary:MVC framework that loads XML configuration filesGroups:Author:Description:This package is a MVC framework that loads XML configuration files...
Read more at http://www.phpclasses.org/package/8030-PHP-MVC-framework-that-loads-XML-configuration-files.html
- Pagination link class
Package:Summary:Generate pagination links for long listingsGroups:Author:Description:This class can generate pagination links for long listings...
Read more at http://www.phpclasses.org/package/8032-PHP-Generate-pagination-links-for-long-listings.html
- pagination-class
Package:Summary:Generate pagination links for long listingsGroups:Author:Description:This class can generate pagination links for long listings...
Read more at http://www.phpclasses.org/package/8032-PHP-Generate-pagination-links-for-long-listings.html
- PHP Array Sort Algorithms class
Package:Summary:Sort arrays values using multiple algorithmsGroups:Author:Description:This class can sort arrays values using multiple algorithms...
Read more at http://www.phpclasses.org/package/8027-PHP-Sort-arrays-values-using-multiple-algorithms.html
- PHP Array Sort Algorithms
Package:Summary:Sort arrays values using multiple algorithmsGroups:Author:Description:This class can sort arrays values using multiple algorithms...
Read more at http://www.phpclasses.org/package/8027-PHP-Sort-arrays-values-using-multiple-algorithms.html
- PHP XML SiteMap Generator Class
Package:Summary:Generate a XML sitemap from Web page filesGroups:Author:Description:This class can generate a XML sitemap from Web page files...
Read more at http://www.phpclasses.org/package/8025-PHP-Generate-a-XML-sitemap-from-Web-page-files.html
- Simple PHP System Info class
Package:Summary:Get computer usage of CPU, memory and disk spaceGroups:Author:Description:This class can get computer usage of CPU, memory, disk space and network traffic...
Read more at http://www.phpclasses.org/package/8028-PHP-Get-computer-usage-of-CPU-memory-and-disk-space.html