 | News Feed |
 | Jobs Feed |
Sections
|
| feed this: |  |
PHPMaster.com: Using Phing
by Chris Cornutt January 05, 2012 @ 10:41:40
On PHPMaster.com today there's a new tutorial posted about using the Phing build tool to automate a process, usually a build for a website launch. In his example, he shows a simple "Hello World" example and how to work with multiple targets in the same build file.
Phing is a PHP project build tool based on Apache Ant. A build system helps you to perform a group of actions using a single command. [...] Phing helps overcome [human error] issues by automating tasks like running unit tests, applying database changes, deploying application code, etc. In this article I'll show you some of the basics of working with Phing.
He includes the commands you'll need to install Phing (if it's not already) via the PEAR installer and a basic "build.xml" file. He explains the parts of the file - tags for "project", "target" "echo" and "property - and includes a more complex build example with multiple targets (and how to call one specifically from the command line).
voice your opinion now!
phing build tool tutorial multiple target helloworld
Josh Adell's Blog: Phar Flung Phing
by Chris Cornutt September 26, 2011 @ 10:05:37
Josh Adell has posted about a bit of automation he set up with Phing and PHP's phar packaging to create an archive as a part of his build system. It's a simple five step process mad even easier by the fact that Phing already has a PharPackage task.
One of the cooler features of PHP 5.3 is the ability to package up a set of PHP class files and scripts into a single archive, known as a PHAR ("PHp ARchive"). [...] I decided to see how easy it would be to wrap up Neo4jPHP in a PHAR for distribution. [...] Since I also started playing with Phing recently, I decided to see if I could incorporate packaging a project as a PHAR into my build system. It turns out, it's pretty easy, given that Phing has a built-in PharPackage task.
He points you towards Phing's PEAR channel to get the tool installed and includes a command-line call to update your php.ini to allow PHP to generate phar files. Code is included to create the phar-generation stub as well as the XML for the Phing build file. You can find his end result here.
voice your opinion now!
phar package archive neo4jphp tutorial build task phing
Sander Marechal's Blog: A YuiCompressorFilter for Phing
by Chris Cornutt August 02, 2011 @ 09:16:37
Sander Marechal has been working with Phing in some of his recent development and has created something useful for compressing Javascript and CSS files on the deployment of your application - a YuiCompressor task.
I am going to write several useful extensions, the first of which is a YuiCompressorFilter. Phing already has support for a JavaScrip minifier in the form of the JsMinTask, but the yui-compressor is more useful. Not only does it usually compress better than JsMin, it can also compress CSS files. Also, because my YuiCompressor extension is implemented as a filter instead of a task you can do fancy things like minifying and concatenating files in a single step.
He includes both a sample of the task and it's configuration (the XML) in the post as well as a link to its source over on github.
voice your opinion now!
javascript compress phing task css
Tom Jowitt's Blog: Streamlined PHP Development - Part II
by Chris Cornutt July 20, 2011 @ 08:21:07
Tom Jowitt has posted the second part of his series looking at setting up a streamlined PHP development environment in part two covering some of the basics of the build.
In the first part of this series we looked at setting up our Apache installation to make life easier. Now that the basics are sorted we can start looking at how to structure our development environment and run some basic build tasks using Phing.
He shows how to use the PEAR installer to get Phing installed (including all of its dependencies) and creating the base directory for it to use in your build. He includes the contents of some of the configuration files (available on github) to set up some properties and the steps to the build process in the build.xml. He explains each part of the build process and includes some screenshots of the end result.
voice your opinion now!
phing development environment automate tutorial application
PHP and Me Blog: Use Phing to Update your SVN-Version-Controlled Website Automatically, Through FTP
by Chris Cornutt June 20, 2011 @ 11:57:15
On the "PHP and Me" blog there's a new entry from Pinpin Bysma showing how to use the PHP-based deployment tool Phing to update your production website via an FTP connection, automated by a Phing build.
If you're working on a PHP project, like with any other project, probably comes a time when you need to "build a new release," e.g. update the production web site with the latest version of the code. And doing the whole thing manually isn't the most efficient way to get things done, especially if you're lazy, or have to do that every once in a while, over a long period of time. [...] Obviously if updating the site itself could be done without FTP but through a simple svn switch, things would be easier. Still, Phing would allow to make things easier just as nicely. It could for example still be used to create the new tag, trigger the switch, etc
He introduces the process by showing a basic Phing build file that uses the PEAR VersionControl_SVN component to get the latest from the repository and push it to another directory. There was one thing that he wanted to do that the default SVN task couldn't - export the difference between two tags. To make this happen, he had to extend Phing and make a new task - SvnExportDiff. He includes the code for this new task and an updated build file to show it all in use - complete with the FtpDeploy to push the code live.
voice your opinion now!
phing tutorial svn website deploy ftp custom task
Lorna Mitchell's Blog: Idiot-Proof Deployment with Phing
by Chris Cornutt May 13, 2011 @ 11:38:37
Lorna Mitchell has a new post to her blog providing what she calls an idiot-proof guide to deployment with Phing, the popular PHP-based deployment tool based on Apache's Ant.
When I launched my own product recently (BiteStats, a thing to automatically email you a summary of your analytics stats every month), I knew that I would need a really robust way of deploying code. I've been doing a few different things for a few years, and I've often implemented these tools with or for other organisations, but I don't have much code in production in my own right, weirdly. I decided Phing was the way to go, got it installed, and worked out what to do next.
Her guide starts with a simple build.xml and builds it out with several tasks and targets including her main "deploy" target that grabs the next tag from her mercurial repository, packages it up for deployment. She explains things step by step so you won't miss anything too, since there's a lot going on.
voice your opinion now!
phing deployment tutorial build xml
Christian Weiske's Blog: Visualizing PHPUnit runs
by Chris Cornutt May 02, 2011 @ 10:19:48
During some of his development, Christian Weiske found the tests for a project he was working on too slow for comfort and figured there had to be a way to find the root cause:
Running the specific test cases for the part of the application you're working on is easy and fast, but that does not tell you when changes in part A of the app break part B - which happened several times, and all just because I didn't want to wait 45 seconds again and again. So a solution was badly needed; tests should be as fast as possible; preferably < 10 seconds. Before being able to make the slow tests faster, I had to find out which of the 80 tests were slow.
Tools like Jenkinks give more detail on test runs, but a normal PHPUnit install won't. So, he came up with a method that uses Phing's phpunitreport task to generate extra reporting easily. Here's some example screenshots: test results summary, test detail and single page views of the same sort of data.
voice your opinion now!
visualize phpunit runtime phing phpunitreport report
Lorna Mitchell's Blog: Script for Database Patching at Deploy Time
by Chris Cornutt April 15, 2011 @ 08:51:31
As a part of one of her projects, Lorna Mitchell had a need to deploy database patches as a part of her overall deployment process. Obviously, doing this manually every time can be a hassle so she came up with a script that does the work for her (based on a patch_history table).
My current project (BiteStats, a simple report of your google analytics data) uses a basic system where there are numbered patches, and a patch_history table with a row for every patch that was run, showing the version number and a timestamp. When I deploy the code to production, I have a script that runs automatically to apply the patches.
The script uses the number-based patch names (such as patch1.sql) and finds the latest ones that haven't been applied based on the highest values for the patch_number column in the database. This number is updated by the patches themselves when they're run to avoid any confusion in the script itself. She has it running as a part of her phing build process as a part of a Zend Framework application.
voice your opinion now!
deployment database patch number history mysql table phing
|
Community Events
Don't see your event here? Let us know!
|