2013-02-27 57 views

回答

4

只需使用Gaufrette,我也這樣做(即使在ZF2項目中)!

php composer.phar require knplabs/gaufrette:0.1.* 

然後,您可以在應用程序中的任何地方使用它,並最終通過在YourNamespace\Module#getServiceConfig定義它把它作爲一個服務:

namespace YourNamespace; 

use Zend\ModuleManager\Feature\ServiceProviderInterface; 
use Zend\ModuleManager\Feature\ConfigProviderInterface; 
use Zend\ServiceManager\ServiceLocatorInterface; 
use Gaufrette\Filesystem; 
use Gaufrette\Adapter\Local as LocalFs; 

class Module implements ServiceProviderInterface, ConfigProviderInterface 
{ 
    public function getConfig() 
    { 
     return array(
      'your_namespace' => array(
       'filesystem' => array(
        'base_path' => 'data/files', 
       ), 
      ), 
     ); 
    } 

    public function getServiceConfig() 
    { 
     return array(
      'factories' => array(
       'YourNamespace\Filesystem' => function (ServiceLocatorInterface $sl) { 
        $config = $sl->get('Config'); 
        $basePath = $config['your_namespace']['filesystem']['base_path']; 

        return new Filesystem(new LocalFs($basePath, true)); 
       }, 
      ), 
     ); 
    } 
} 

然後可以使用服務YourNamespace\Filesystem跨所有應用程序。

我還將它與Symfony\Filesystem一起用於處理文件移動/複製/檢查操作。並非所有東西都必須來自Zend Framework 2才能用於ZF2應用程序。

+0

很酷,謝謝你的幫助。 – Alexrun 2013-02-27 14:25:47

相關問題