yaf框架學習之集成pdo操作類,路由的定義以及自動加載


yaf性能高是其優點,但它沒有集成mysql等類文件調用,需要自己手動封裝,下面分享一下集成的pdo擴展

推薦參考下這位仁兄的:http://blog.csdn.net/doomsday0417/article/details/70810366

配置和引用文中都已經很詳細的介紹了,這里不多做贅述

路由的定義

conf/application.ini里添加如下代碼

 1 ;自定義路由
 2 ;順序很重要
 3 routes.regex.type="regex"
 4 routes.regex.match="#^/list/([^/]*)/([^/]*)#"
 5 routes.regex.route.controller=Index
 6 routes.regex.route.action=action
 7 routes.regex.map.1=name
 8 routes.regex.map.2=value
 9 ;添加一個名為simple的路由協議
10 routes.simple.type="simple"
11 routes.simple.controller=c
12 routes.simple.module=m
13 routes.simple.action=a
14 ;添加一個名為supervar的路由協議
15 routes.supervar.type="supervar"
16 routes.supervar.varname=r
17 ;product節是Yaf默認關心的節, 添加一個名為rewrite的路由協議
18 routes.rewrite.type="rewrite"
19 routes.rewrite.match="/product/:name/:value"

創建一個application/Bootstrap.php文件,bootstrap.php是一個初始化文件,里面的_init的方法都會依次執行

 1 use Yaf\Bootstrap_Abstract;
 2 use Yaf\Dispatcher;
 3 use Yaf\Registry;
 4 use Yaf\Application;
 5 use Yaf\Loader;
 6 class Bootstrap extends Bootstrap_Abstract{
 7     public function _initConfig(Dispatcher $dispatcher){
 8         //配置文件添加
 9         Registry::set('config', Application::app()->getConfig());
10     }
11     //配置路由
12     public function _initRoute(Dispatcher $dispatcher){
13         $router = Dispatcher::getInstance()->getRouter();
14         @$router->addConfig(Registry::get("config")->routes);
15     }
16    /* public function _initCommonFunctions(){
17         Loader::import(Application::app()->getConfig()->application->directory . '/test.php');
18     }
19 */
20     public function _initLoader($dispatcher){
21         Loader::getInstance()->registerLocalNameSpace(array("Foo", "Local"));
22      }
23 }

注意,在public/index.php里面

創建hello.php控制器

use Yaf\Controller_Abstract;
class HelloController extends Controller_Abstract
{
    public function indexAction()
    {
        echo 'hello world';
        die;
    }
}

 

 

自動加載

第三方類文件放在application/library/目錄里,公共的類文件,創建一個common目錄,里面的類文件讓所有的控制器都繼承自這個類文件

 1 use Yaf\Controller_Abstract ;//此處與官方文檔不一致,之后有詳細的解釋。
 2 use Yaf\Loader;
 3 use Yaf\Application;
 4 class common_Base extends Controller_Abstract
 5 {
 6     public $config;
 7     public $db;
 8     public function init()
 9     {
10         $config = Application::app()->getConfig()->db;
11         $this->db = Db_Mysql::getInstance($config);
12     }
13 }
 1 use common\Base;
 2 use Yaf\Application;
 3 class IndexController extends common_Base
 4 {
 5     public function init()
 6     {
 7         parent::init();
 8     }
 9 }
10 public function dbAction()
11     {
12         //查詢
13         //$row = $this->db->fetchAll('select * from `user` where id=1');
14         //添加
15         //$result = $this->db->insert('user',['username'=>'comeon']);
16         //修改
17         //$res = $this->db->update('user',['username'=>'lelle'],'id=3');
18         //$result = $this->db->delete('user','id=4');
19         // $id = $this->db->lastInsertId();
20         //連表查詢
21         $result = $this->db->fetchAll('select a.*,b.content from user as a left join comment as b on b.uid = a.id where a.id=1');
22         var_dump($result);
23         die;
24         if($result){
25             echo $result;
26         }else{
27             echo 'fail';
28         }
29         die;
30 
31     }

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com