composer create-project --stability="dev" zendframework/skeleton-application application_name
composer self-update
composer install
# installare il FW completo(60pkgs)
composer require zendframework/zendframework
virtualhost settings:
<VirtualHost *:80>
ServerName zf2-app.localhost
DocumentRoot /path/to/zf2-app/public
<Directory /path/to/zf2-app/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
</VirtualHost>
for immediate testing:
cd path/to/install php -S 0.0.0.0:8080 -t public/ public/index.php # OR use the composer alias: composer serve
il file di base dell aconfigurazione è /config/application.config.php
composer development-enable # enable development mode composer development-disable # disable development mode composer development-status # whether or not development mode is enabled
config/development.config.php
service factory
use Zend\ServiceManager\ServiceLocatorInterface; use Zend\ServiceManager\AbstractFactoryInterface; class MyAbstractFactory implements AbstractFactoryInterface { public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) { // this abstract factory only knows about 'foo' and 'bar' return $requestedName === 'foo' || $requestedName === 'bar'; } public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) { $service = new \stdClass(); $service->name = $requestedName; return $service; } } $serviceManager->addAbstractFactory('MyAbstractFactory'); var_dump($serviceManager->get('foo')->name); // foo var_dump($serviceManager->get('bar')->name); // bar var_dump($serviceManager->get('bar')->name);
usare ZendTool ZendTool docs
composer require zendframework/zftool
ln -s vendor/zendframework/zftool/zf.php bin/zftool
<?php
// usa:
// php classmap_generator.php My/Project
require_once 'Zend/Loader/StandardAutoloader.php';
$autoLoader = new Zend\Loader\StandardAutoloader(array(
'fallback_autoloader' => true,
));
$autoLoader->register();
# define connection in: /config/autoload/global.php
/module/yourmodule/src/yourmodule/FactoryDB.php
/module/yourmodule/config/module.config.php
'service_manager' => array( 'factories' => array( 'DBFactory' => 'yourmodule\Factory\DBFactory', ), ),
factoryDB.php
namespace Application\Factory;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class DBFactory implements FactoryInterface {
private $config;
private $serviceLocator;
public function createService(ServiceLocatorInterface $serviceLocator) {
return $servicelocator->get('Your\Service');
}
// createService() { $db = $sl->get('db'); return= new Gateway($db); }
}
// call in controller
$serviceManager->get('DBFactory')->yourfunction(yourarguments);