php中Yaf框架集成zendframework2

作者:袖梨 2022-06-24


php框架 Yaf集成zendframework2, zf2的orm 可以作为独立模块用到yaf中,而且zf2 composer service manger  cacheStorage 都可以集成到yaf中。

一:publicindex.php 加入composer

chdir(dirname(__DIR__));

 

// Decline static file requests back to the PHP built-in webserver

if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {

return false;

}

 

// Setup autoloading

require 'init_autoloader.php';

 

// Define path to application directory

define("APP_PATH", dirname(__DIR__));

 

// Create application, bootstrap, and run

$app = new Yaf_Application(APP_PATH . "/conf/application.ini");

$app->bootstrap()->run();


根目录 存放 init_autoloader.php

二:导入ZF2 模块组件

vendorZF2  见页尾下载包

三:更改bootstrap配置文件

getConfig();

Yaf_Registry::set("config", $config);

}

 

public function _initServiceManager() {

$configuration = require APP_PATH . '/conf/application.config.php';

$smConfig = isset($configuration['service_manager']) ? $configuration['service_manager'] : array();

$serviceManager = new ServiceManager(new ServiceManagerConfig($smConfig));

$serviceManager->setService('ApplicationConfig', $configuration);

 

$configListener = new ConfigListener(new ListenerOptions($configuration['module_listener_options']));

 

// If not found cache, merge config

if (!$configListener->getMergedConfig(false)) $configListener->onMergeConfig(new ModuleEvent);

 

// If enabled, update the config cache

if ($configListener->getOptions()->getConfigCacheEnabled() &&

!file_exists($configListener->getOptions()->getConfigCacheFile())) {

//echo "debug";

$configFile = $configListener->getOptions()->getConfigCacheFile();

$content = "getMergedConfig(false), 1) . ';';

file_put_contents($configFile, $content);

}

 

$serviceManager->setService('config', $configListener->getMergedConfig(false));

 

Yaf_Registry::set('ServiceManager', $serviceManager);

}

 

public function _initSessionManager() {

Yaf_Registry::get('ServiceManager')->get('ZendSessionSessionManager');

}

 

public function _initPlugin(Yaf_Dispatcher $dispatcher) {

$user = new UserPlugin();

$dispatcher->registerPlugin($user);

}

 

}

四:mvc测试

getDbAdapter();

 

$table = new TableGateway('zt_user', $adapter);

 

$entities = $table->select();

foreach ($entities as $entity) {

var_dump($entity->username);

}

 

$cache = $this->getStorage();

$cache->setItem('cache', 'cachedata');

 

echo $cache->getItem('cache');

$this->getLogger()->alert('log');

 

$this->getView()->assign("content", "Hello World");

}

 

/**

* db adapter

* @return ZendDbAdapterAdapter

*/

public function getDbAdapter() {

return Yaf_Registry::get('ServiceManager')->get('ZendDbAdapterAdapter');

}

 

/**

* storage

* @return ZendCacheStorageStorageInterface

*/

protected function getStorage() {

return Yaf_Registry::get('ServiceManager')->get('ZendCacheStorageStorageInterface');

}

 

/**

* logger

* @return ZendLogZendLogLogger

*/

protected function getLogger() {

return Yaf_Registry::get('ServiceManager')->get('ZendLogLogger');

}

 

}


这样你访问public下的index.php 会输出hello word字样

相关文章

精彩推荐