当前位置:首页 > PHP教程 > php高级应用 > 列表

php中Yaf框架集成zendframework2

发布:smiling 来源: PHP粉丝网  添加日期:2016-01-20 16:10:45 浏览: 评论:0 

本文章来为各位介绍php中Yaf框架集成zendframework2的例子,有兴趣的可以和php粉丝网教程小编一起来看看,具体操作如下.

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

一:public\index.php 加入composer

  1. chdir(dirname(__DIR__)); 
  2.  
  3. // Decline static file <a href="/tags.php/request/" target="_blank">request</a>s back to the PHP built-in webserver 
  4.  
  5. if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) { 
  6.  
  7. return false; 
  8.  
  9.  
  10. // Setup autoloading 
  11.  
  12. require 'init_autoloader.php'
  13.  
  14.  
  15. // Define path to application directory 
  16.  
  17. define("APP_PATH", dirname(__DIR__)); 
  18.  
  19.  
  20. // Create application, bootstrap, and run 
  21.  
  22. $app = new Yaf_Application(APP_PATH . "/conf/application.ini"); 
  23.  
  24. $app->bootstrap()->run(); 

根目录 存放 init_autoloader.php

二:导入ZF2 模块组件

vendor\ZF2  见页尾下载包

三:更改bootstrap配置文件

  1. <?php 
  2. use Zend\ServiceManager\ServiceManager; 
  3.  
  4. use Zend\Mvc\Service\ServiceManagerConfig; 
  5.  
  6. use Zend\ModuleManager\Listener\ConfigListener; 
  7.  
  8. use Zend\ModuleManager\Listener\ListenerOptions; 
  9.  
  10. use Zend\ModuleManager\ModuleEvent; 
  11.  
  12. class Bootstrap extends Yaf_Bootstrap_Abstract { 
  13.  
  14. public function _initConfig() { 
  15.  
  16. $config = Yaf_Application::app()->getConfig(); 
  17.  
  18. Yaf_Registry::set("config"$config); 
  19.  
  20.  
  21. public function _initServiceManager() { 
  22.  
  23. $configuration = require APP_PATH . '/conf/application.config.php'
  24.  
  25. $smConfig = isset($configuration['service_manager']) ? $configuration['service_manager'] : array(); 
  26.  
  27. $serviceManager = new ServiceManager(new ServiceManagerConfig($smConfig)); 
  28.  
  29. $serviceManager->setService('ApplicationConfig'$configuration); 
  30.  
  31. $configListener = new ConfigListener(new ListenerOptions($configuration['module_listener_options'])); 
  32.  
  33. // If not found cache, merge config 
  34.  
  35. if (!$configListener->getMergedConfig(false)) $configListener->onMergeConfig(new ModuleEvent); 
  36.  
  37. // If enabled, update the config cache 
  38.  
  39. if ($configListener->getOptions()->getConfigCacheEnabled() && 
  40.  
  41. !file_exists($configListener->getOptions()->getConfigCacheFile())) { 
  42.  
  43. //echo "debug"; 
  44.  
  45. $configFile = $configListener->getOptions()->getConfigCacheFile(); 
  46.  
  47. $content = "<?php\nreturn " . var_export($configListener->getMergedConfig(false), 1) . ';'
  48.  
  49. file_put_contents($configFile$content); 
  50.  
  51.  
  52. $serviceManager->setService('config'$configListener->getMergedConfig(false)); 
  53.  
  54. Yaf_Registry::set('ServiceManager'$serviceManager); 
  55.  
  56.  
  57. public function _initSessionManager() { 
  58.  
  59. Yaf_Registry::get('ServiceManager')->get('Zend\Session\SessionManager'); 
  60.  
  61.  
  62. public function _initPlugin(Yaf_Dispatcher $dispatcher) { 
  63.  
  64. $user = new UserPlugin(); 
  65.  
  66. $dispatcher->registerPlugin($user); 
  67.  
  68.  

四:mvc测试

  1. <?php 
  2. use Zend\Session\Container as SessionContainer; 
  3.  
  4. use Zend\Db\TableGateway\TableGateway; 
  5.  
  6. class IndexController extends Yaf_Controller_Abstract { 
  7.  
  8. public function indexAction() { 
  9.  
  10. $adapter = $this->getDbAdapter(); 
  11.  
  12. $table = new TableGateway('zt_user'$adapter); 
  13.  
  14. $entities = $table-><a href="/tags.php/select/" target="_blank">select</a>(); 
  15.  
  16. <a href="/tags.php/foreach/" target="_blank">foreach</a> ($entities as $entity) { 
  17.  
  18. var_dump($entity->username); 
  19.  
  20.  
  21. $cache = $this->getStorage(); 
  22.  
  23. $cache->setItem('cache''cachedata'); 
  24.  
  25. echo $cache->getItem('cache'); 
  26.  
  27. $this->getLogger()->alert('log'); 
  28.  
  29. $this->getView()->assign("content""Hello World"); 
  30.  
  31.  
  32. /** 
  33.  
  34. * db adapter 
  35.  
  36. * @return \Zend\Db\Adapter\Adapter 
  37.  
  38. */ 
  39.  
  40. public function getDbAdapter() { 
  41.  
  42. return Yaf_Registry::get('ServiceManager')->get('Zend\Db\Adapter\Adapter'); 
  43.  
  44.  
  45. /** 
  46.  
  47. * storage 
  48.  
  49. * @return \Zend\Cache\Storage\StorageInterface 
  50.  
  51. */ 
  52.  
  53. protected function getStorage() { 
  54.  
  55. return Yaf_Registry::get('ServiceManager')->get('Zend\Cache\Storage\StorageInterface'); 
  56.  
  57.  
  58. /** 
  59.  
  60. * logger 
  61.  
  62. * @return \Zend\Log\Zend\Log\Logger 
  63.  
  64. */ 
  65.  
  66. protected function getLogger() { 
  67.  
  68. return Yaf_Registry::get('ServiceManager')->get('Zend\Log\Logger'); 
  69.  
  70.  

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

Tags: Yaf框架 zendframework2

分享到: