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
- chdir(dirname(__DIR__));
- // Decline static file <a href="/tags.php/request/" target="_blank">request</a>s 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 模块组件
vendor\ZF2 见页尾下载包
三:更改bootstrap配置文件
- <?php
- use Zend\ServiceManager\ServiceManager;
- use Zend\Mvc\Service\ServiceManagerConfig;
- use Zend\ModuleManager\Listener\ConfigListener;
- use Zend\ModuleManager\Listener\ListenerOptions;
- use Zend\ModuleManager\ModuleEvent;
- class Bootstrap extends Yaf_Bootstrap_Abstract {
- public function _initConfig() {
- $config = Yaf_Application::app()->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 = "<?php\nreturn " . var_export($configListener->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('Zend\Session\SessionManager');
- }
- public function _initPlugin(Yaf_Dispatcher $dispatcher) {
- $user = new UserPlugin();
- $dispatcher->registerPlugin($user);
- }
- }
四:mvc测试
- <?php
- use Zend\Session\Container as SessionContainer;
- use Zend\Db\TableGateway\TableGateway;
- class IndexController extends Yaf_Controller_Abstract {
- public function indexAction() {
- $adapter = $this->getDbAdapter();
- $table = new TableGateway('zt_user', $adapter);
- $entities = $table-><a href="/tags.php/select/" target="_blank">select</a>();
- <a href="/tags.php/foreach/" target="_blank">foreach</a> ($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 \Zend\Db\Adapter\Adapter
- */
- public function getDbAdapter() {
- return Yaf_Registry::get('ServiceManager')->get('Zend\Db\Adapter\Adapter');
- }
- /**
- * storage
- * @return \Zend\Cache\Storage\StorageInterface
- */
- protected function getStorage() {
- return Yaf_Registry::get('ServiceManager')->get('Zend\Cache\Storage\StorageInterface');
- }
- /**
- * logger
- * @return \Zend\Log\Zend\Log\Logger
- */
- protected function getLogger() {
- return Yaf_Registry::get('ServiceManager')->get('Zend\Log\Logger');
- }
- }
这样你访问public下的index.php 会输出hello word字样.
Tags: Yaf框架 zendframework2
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)