关于Yaf框架的初步搭建
来源:互联网 发布:java加载配置文件 编辑:程序博客网 时间:2024/06/09 19:00
一年前由于工作原因,接触过一段时间鸟哥的yaf框架,关于yaf框架详细介绍请查看鸟哥的博客和yaf文档。后来就没在碰过了,昨天偶然看到一个关于yaf的视频,就顺手捡起来搭建一下环境。
下面就我的使用情况和遇到的问题做下记录。至于扩展安装什么的就不说了,只要安装能适合自己的php环境的就可以了。首先通过yaf源码的tools/cg/yaf_cg工具生成yaf推荐的标准目录结构。
- php yaf_cg [project_name] #这个我暂定为yaf
- 查看当前目录下output目录,生成了一个yaf目录,这就是一个完整的项目结构,可以复制部署到你熟悉的web服务下,详细的部署请查看yaf文档中相关章节
遇到的问题
一、smarty适配yaf
按照配置净smarty放置到application/library目录后,按照网上大多数推荐的方式放置Smarty_Adapter适配器后,细节可以参考这篇文章,由于smarty的目录结构和yaf的类库加载规则不同,总是会出现各种提示缺少类库,按照提示将所需类库import之后,输出简单的字符串变量可以运行,但是如果现在使用更多smarty功能,还是会提示缺少类库,于是再次导入。。。。。感觉一直这么干,不是办法呀,smarty可是有150多类库,也总不能挨个去尝试每个功能缺少那个类库吧,要疯掉的。。。。。
尝试了多个方法之后,终于放弃。。。。于是乎想起了迫不得已的方式,按照yaf的加载规则,改写smarty,组要是按照类名将文件放置于各文件夹里,并将文件改名,目录结构下改后如下:
稍微修改smarty部分源码,删除掉了Smarty.class.php中的一下内容:
/** * Try loading the Smarty_Internal_Data class * If we fail we must load Smarty's autoloader. * Otherwise we may have a global autoloader like Composer */if (!class_exists('Smarty_Autoloader', false)) { if (!class_exists('Smarty_Internal_Data', true)) { require_once dirname(__FILE__) . '/Autoloader.php'; Smarty_Autoloader::registerBC(); }}/** * Load always needed external class files */if (!class_exists('Smarty_Internal_Data', false)) { require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php';}require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_extension_handler.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_variable.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_source.php';require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_resource_base.php';
类的加载将有yaf自动完成,修改的源码请查看这里。欢迎指正patch代码。
二、map路由配置
由于yaf采用传统的 模块/控制器/动作 模式,导致其路由只能有三层,但是个人比较喜欢多层那种。于是乎就找到map路由的配置,Bootstrap.php简单配置如下:
public function _initRoute(Yaf_Dispatcher $dispatcher) { //在这里注册自己的路由协议,默认使用简单路由 $router = $dispatcher->getRouter(); $route = new Yaf_Route_Map(true, '?'); $router->addRoute('map', $route); }
最终访问效果是:
三、参数获取问题
基于第二个问题的配置,发现通过 ?p=1 这种方式,无法获取到p的值,目前暂时还没找到解决方法,待找到了再补充。。。。也欢迎有办法的大神留言补充
- 关于Yaf框架的初步搭建
- YAF 框架的皮毛
- 关于YAF框架自动加载类的注意事项
- 关于YAF框架自动加载类的注意事项
- SSH框架的初步搭建
- php+apache+yaf框架开发环境搭建
- yaf框架的一些函数
- yaf框架 yaf-cms
- Yaf零基础学习总结2-Yaf框架的安装
- YAF框架
- 关于Yaf的一些说明[转Yaf作者]
- 关于Yaf的一些说明[转Yaf作者]
- spring框架的搭建的初步认识
- spring MVC框架的初步搭建
- Windows系统下Yaf框架的安装
- Yaf框架在window上的配置
- 关于Spring框架的初步接触
- 关于yaf自动加载的一个疑惑
- L3-010. 是否完全二叉搜索树
- mysql查询执行过程
- 土巴兔CEO王国彬:这五点,决定了你事业的上限
- usaco2017febgold总结
- IDEA 快捷键for MAC
- 关于Yaf框架的初步搭建
- 线程间的通信、同步方式与进程间通信方式
- Facebook网络模拟测试工具ATC使用
- VMWare+Ubuntu+KVM+VNC虚拟机安装配置
- Linkit Smart MT7688:获取uboot、设置uboot和固件的调试打印uart端口
- 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串
- Eclipse集成ESP8266编译环境
- SPI器件的菊链配置
- 算法提高 超级玛丽