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

Config

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();

DB

# 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);