# Zend Framework Skeleton Module This is a sample skeleton module for use with [zend-mvc](https://docs.zendframework.com/zend-mvc) applications. ## Installation First, decide on a namespace for your new module. For purposes of this README, we will use `MyNewModule`. Clone this repository into your application: ```bash $ cd module $ git clone https://github.com/zendframework/ZendSkeletonModule MyNewModule $ cd MyNewModule ``` If you wish to version the new module with your application, and not as a separate project, remove the various Git artifacts within it: ```bash $ rm -Rf .git .gitignore ``` If you want to version it separately, remove the origin remote so you can specify a new one later: ```bash $ git remote remove origin ``` The next step will be to change the namespace in the various files. Open each of `config/module.config.php`, `src/Module.php`, and `src/Controller/SkeletonController.php`, and replace any occurence of `ZendSkeletonModule` with your new namespace. > ### find and sed > > You can also do this with the Unix utilties `find` and `sed`: > > ```bash > $ for php in $(find . -name '*.php');do > > sed --in-place -e 's/ZendSkeletonModule/MyNewModule/g' $php > > done > ``` Next, we need to setup autoloading in your application. Open the `composer.json` file in your application root, and add an entry under the `autoload.psr-4` key: ```json "autoload": { "psr-4": { "MyNewModule\\": "module/MyNewModule/src/" } } ``` When done adding the entry: ```bash $ composer dump-autoload ``` Finally, notify your application of the module. Open `config/modules.config.php`, and add it to the bottom of the list: ```php return [ /* ... */ 'MyNewModule', ] ``` > ### application.config.php > > If you are using an older version of the skeleton application, you may not > have a `modules.config.php` file. If that is the case, open `config/application.config.php` > instead, and add your module under the `modules` key: > > ```php > 'modules' => [ > /* ... */ > 'MyNewModule', > ], > ```