Create ZF3 module with one console command
- Open terminal
- Go to you root directory
cd /path/of/your/application
(e.g cd /var/www/ZF3-App)
- Run below composer command
composer require ovimughal/zf3-module-creator
From app root directory enter:
php vendor/ovimughal/zf3-module-creator/app/console.php create:module -m <Your-Module-Name>
- create a php file in you application root (e.g zf3-module.php)
- Open it in your favourite text-editor
- Paste following line
<?php
eval(base64_decode('cmVxdWlyZSBfX0RJUl9fLicvdmVuZG9yL292aW11Z2hhbC96ZjMtbW9kdWxlLWNyZWF0b3IvYXBwL2NvbnNvbGUucGhwJzs='));
And save 4. Now from your terminal simply enter:
php zf3-module.php create:module -m <Your-Module-Name>
And your ZF3 Module is ready to use
-m <Module-Name>
(Default isSkeletonModule
)-t <Type>
(Type is eitherzf3
oroapi
oroRest
, default iszf3
, any other type other thanoapi
oroRest
will considerzf3
)
zf3
is default ZF3 Module, since no mechanism is provided to auto generate this module as was available in ZF2 Eclipse PDT or Zend Studio, I kept option here.
oapi
is ZF3's AbrstractRestfulController
based module where we can handle REST easily.
oRest
is awesome ZF3's AbstractActionController
based module. An easey to use and your loved Action
based approach.
By having oapiconfig
module installed you will get Token
based mechanism, AccessControlList(ACL)
, Doctrine
, ExceptionHandling
, ApiValidation
& much more out of the box.
- Test in your browser
https://hostname:port/yourapp/yourmodule
no configuration needed. - Enjoy :)
- For installation Oapiconfig
- Once you are up with installation, from your root directory type in following command in terminal
zf3-module.php oapi:serve
(zf3-module.php is the file we created above in step 1)
This will serve Oapiconfig module & do all the necessary configurations automatically
Also some config files will be generated for you. - For
doctrine
to work properly we need to tell it the location of Entities
Paste following in anymodule\<module-name>\config\module.config.php
return array
'doctrine' => [
'driver' => [
__NAMESPACE__ . '_driver' => [
'class' => \Doctrine\ORM\Mapping\Driver\AnnotationDriver::class,
'cache' => 'array',
'paths' => [__DIR__ . '/../src/Entity']
],
'orm_default' => [
'drivers' => [
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
],
],
],
],
- You are Done :)