Development using a virtual machine
###################################

You can set up a development virtual machine for ZF1 unit testing and library 
development following these simple instructions.

1. Install requirements for VM. (Note: these are not required by ZF1 itself)
   - VirtualBox (https://www.virtualbox.org/)
   - Ruby (http://www.ruby-lang.org/)
   - Vagrant (http://vagrantup.com/)

2. Checkout repository to any location
   > git clone git://github.com:zendframework/zf1.git zf1-dev
   > cd zf1-dev
   
3. Start the process by running Vagrant.
   > vagrant up

   This will take a long while as it has to download a VM image and then 
   provision it. Once it has finished, it will exit and leave you back at the
   command prompt.

4. SSH into the VM
   > vagrant ssh

5. Build a version of PHP.
   > php-build.sh 5.3.11

   This also takes a while as it compiles PHP for you!
   
6. Select PHP to use:
   > pe 5.3.11

7. Run tests
   > cd /vagrant/tests
   > phpunit --stderr -d memory_limit=-1 Zend/Acl/AclTest.php
   > phpunit --stderr -d memory_limit=-1 Zend/Amf/AllTests.php
   (etc...)

Note that you can repeat items 5 and 6 to create any version if PHP.

   
Notes:
- The VM will be running in the background as VBoxHeadless
- HTTP and SSH ports on the VM are forwarded to localhost (22 -> 2222, 80 -> 8081)
- The zf1-dev directory you checked out will be mounted inside the VM at /vagrant
- You can develop by editing the files you cloned in the IDE of you choice.
- To stop the VM do one of the following:
  > vagrant suspend   # if you plan on running it later
  > vagrant halt      # if you wish to turn off the VM, but keep it around
  > vagrant destroy   # if you wish to delete the VM completely
- Also, when any of of the Puppet manifests change (.pp files), it is a good idea to rerun them:
  > vagrant provision


