kohana框架使用lib库的方法详解
在\kohana-v\application\classes 目录下创建了lib目录和lib.php文件
编辑lib.php文件内容:
<?php
defined('SYSPATH') or die('No direct script access.');
/**
* 参照Model系统类编写,方便调用更多的Tool类帮助完成工作
* 2018-5-29
* 功能类存放于Tool目录下
*/
class Lib {
/**
* Create a new model instance.
* 使用方法:
* $model = Model::factory($name);
*
* @param string $name model name
* @return Model
*/
public static function factory($name)
{
// Add the model prefix
$class = 'Lib_'.$name;
return new $class;//实例化对应的name类
}
} // End Lib
在lib目录中创建相关方法,如User.php内容如下:
<?php
defined('SYSPATH') or die('No direct script access.');
class Lib_User
{
//$_user一定要提前定义好,否则以下self::$_user不生效
private static $_user = NULL;
public function __construct()
{
//将Userlist模型实例化赋值给self::$_user
self::$_user = Model::factory('UserList');
}
public function get_list(){
//调用Userlist模型类的get_list方法
$userlist = self::$_user->get_list();
return $userlist;
}
}
在ailib.php控制器内调用lib内的User.php的方法
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Ailib extends Controller_Website {
public function action_index()
{
//调用lib中User类内的get_list方法
$rendered_view = Lib::factory('User')->get_list();
echo "<pre>";
print_r($rendered_view);
}
}
模型model目录内UserList.php文件,内容如下
<?php
defined('SYSPATH') or die('No direct script access.');
class Model_UserList extends Model_Database {
//单条用户数据
public function get_one($user_id) {
return DB::select()->from('users')->where('id','=',$user_id)->execute()->current();
}
//获取用户列表
public function get_list(){
$data = DB::select()->from('users')->execute()->as_array();
return $data;
}
}
以上都配置好,之后,我们浏览器中访问:http://localhost/kohana-v/ailib/index 就会将user用户表内的所有信息打印出来