Installation
------------
-The easiest way to get a working copy of this project is to do a recursive
-clone:
- git clone --recursive git://github.com/zendframework/ZendSkeletonApplication.git
+Using Composer (recommended)
+----------------------------
+The recommended way to get a working copy of this project is to clone the repository
+and use composer to install dependencies:
-After the clone is complete, set up a virtual host to point to the public/
-directory of the project and you should be ready to go!
+ cd my/project/dir
+ git clone git://github.com/zendframework/ZendSkeletonApplication.git
+ cd ZendSkeletonApplication
+ php composer.phar install
-If you're wondering what the `--recursive` flag is, keep reading:
+Using Git submodules
+--------------------
+Alternatively, you can install using native git submodules. This method works fine but it is
+recommended that you use Composer due to the dependency management it provides.
-Git Submodules
---------------
-This project makes use of [Git submodules](http://book.git-scm.com/5_submodules.html).
-Utilizing Git submodules allows us to reference an exact commit in the upstream
-[zendframework/zf2](https://github.com/zendframework/zf2) repository and ensure
-that those who have cloned the project have that same commit checked out. This
-provides several benefits:
+ git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive
-* Developers do not have to worry about which commit of the zf2 project to have
- checked out for this project to work.
-* No additional steps to "install" Zend Framework are needed; it "just works"
- after a cloning the project.
+You will also need to update public/index.php and modules/Application/Module.php to enable autoloading.
+For public/index.php, replace lines 2-13 with:
-There are a couple of mild caveats to be aware of:
+ use Zend\Loader\AutoloaderFactory,
+ Zend\ServiceManager\ServiceManager,
+ Zend\Mvc\Service\ServiceManagerConfiguration;
-* Be sure to always run `git submodule update` after pulling, as merge/rebase
- does not automatically update the checked out commit in submodules if it has
- been changed.
-* The initial clone will be a bit slower, due to it having to pull down a
- separate copy of ZF2 from what you already have.
+ chdir(dirname(__DIR__));
+ require_once (getenv('ZF2_PATH') ?: 'vendor/ZendFramework/library') . '/Zend/Loader/AutoloaderFactory.php';
+
+ // Setup autoloader
+ AutoloaderFactory::factory();
+
+Within modules/Application/Module.php add this method to the Application class:
+
+ public function getAutoloaderConfig()
+ {
+ return array(
+ 'Zend\Loader\StandardAutoloader' => array(
+ 'namespaces' => array(
+ __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
+ ),
+ ),
+ );
+ }
+
+Virtual Host
+------------
+Afterwards, set up a virtual host to point to the public/ directory of the
+project and you should be ready to go!