php中Yaf框架集成zendframework2

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

一:public\index.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 模块组件

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->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 \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字样

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索框架
, 文件
, 模块
配置
zend framework框架、zend framework 3框架、yaf zend string、zend studio yaf、yaf 框架,以便于您获取更多的相关知识。

时间: 2024-09-27 23:18:47

php中Yaf框架集成zendframework2的相关文章

php框架Yaf 集成ZendFramework DB ORM 与 集成zendframework2 实例教程

Yaf 集成Zend Framework DB ORM yaf没有自己的ORM,可以集成zend的db 或者是symfony2的doctrine2 或者是laravel的Eloquent,都是比较强大的ORMP 首先我们集成zendframework1的DB类,以后我们会讲解如何继承zf2的DbAdapter ,ServiceManager或者Cache,以及Doctrine2,Eloquent 一:下载zf1的DB模块目录结构  YAF\library\Zend,文章底部 二:定义配置文件ap

使用 SQL Server 2005中的 CLR 集成

本文描述了数据库应用程序开发人员和架构师如何利用 SQL Server 2005 中的 CLR 集成功能.本文对基于 CLR 的编程方式与 SQL Server 中支持的现有编程模型(如 TransacT-SQL 和扩展存储过程)进行了比较,并且强调了各自相对的优缺点.还提供了一组选择合适的编程替代方法的高级指导,以及一些示例和代码示例. 一.简介 Microsoft 通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显

利用Rational Team Concert在敏捷开发中进行持续集成

本文将介绍如何利用 Rational Team Concert(RTC)在敏捷开发过程中进行持续集成.详细说明了如 何在 RTC 中通过采取一系列的步骤和脚本开发,来保证持续集成过程的连续性和提高整个项目的效率. 同时还阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,高效化. 概述 Rational Team Concert(RTC)是 Jazz 产品中最重要的一个,是一个可以任务分解集成,源代码版 本控制,进行自动构建和报告的工具.Jazz 做为 IBM 下一代的软件交付平台,

Yaf框架自动添加URL后缀名例子

同Codeigniter一样,Yaf也设置了几个钩子函数,在适当情况下可以接管或改变程序走向. 1 routerStartup 在路由之前触发 这个是7个事件中, 最早的一个. 但是一些全局自定的工作, 还是应该放在Bootstrap中去完成 2 routerShutdown 路由结束之后触发 此时路由一定正确完成, 否则这个事件不会触发 3 dispatchLoopStartup 分发循环开始之前被触发 4 preDispatch 分发之前触发 如果在一个请求处理过程中, 发生了forward

Android中Volley框架进行请求网络数据的使用_Android

问题的阐述:Android SDK中的HttpClient和HttpUrlConnection两种请求方式用来处理网络的复杂的操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图像缓存,请求的调度等等: 解决:Volley就是为解决这些而生,它与2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷:抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request.另外,Volley在不同的线程上异步执行所有请求而避免

CI框架集成Smarty的方法分析_php实例

本文实例讲述了CI框架集成Smarty的方法.分享给大家供大家参考,具体如下: 因为CI自带的模板功能不是很方便,所以大家普遍采用集成Smarty的方式来弥补CI这方面的不足. 本人在网上看了不少CI集成Smarty的教程,包括咱们CI论坛里面的一个精华帖子 http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10345. 自己对比了一下这些教程,我认为下面这个方案是所有里面最优秀的,强烈推荐给大家(当然也是我自己采取的方案

yii,CI,yaf框架+smarty模板使用方法_php实例

本文实例讲述了yii,CI,yaf框架+smarty模板使用方法.分享给大家供大家参考,具体如下: 最近折腾了框架的性能测试,其中需要测试各个模板跟smarty配合的性能,所以折腾了一桶,现总结一下.之前已经写过kohana框架+smarty模板,这里不再重复了. 一.yii框架+smarty模板 yii是覆盖了viewRenderer组件. 1.1,下载yii框架并解压,下载smarty框架并解压,将smarty/libs文件夹拷到yii框架application/protected/vend

PHP扩展框架之Yaf框架的安装与使用_php实例

安装 windows下载扩展:https://pecl.php.net/package/yaf/2.2.9/windows 根据自己的电脑系统和php的版本号选择,NTS是线程不安全,TS是线程安全 根据phpinfo(),选择是否是线程安全 把php_yaf.dll扩展放到ext目录下 重启apache 使用 新建目录public,新建文件index.php入口文件 <?php define("APP_PATH", realpath(dirname(__FILE__) . '/

PHP扩展框架之Yaf框架的安装与使用

安装 windows下载扩展:https://pecl.php.net/package/yaf/2.2.9/windows 根据自己的电脑系统和php的版本号选择,NTS是线程不安全,TS是线程安全 根据phpinfo(),选择是否是线程安全 把php_yaf.dll扩展放到ext目录下 重启apache 使用 新建目录public,新建文件index.php入口文件 <?php define("APP_PATH", realpath(dirname(__FILE__) . '/