目录结构
hht-php-frame
|-App
|-Home
|-Conf
|-Controller
|-IndexController.php
|-Model
|-View
|-Data
|-HHTCore
|-Common
|-bootstrap.php
|-function.php
|-Controller
|-Model
|-index.php
框架的规范问题
类文件
每个类都独立为一个文件,且命名空间至少有一个层次
类的方法命名
方法的名称:必须一直使用camelCase
这种驼峰式
类的属性命名
PSR规范中没有做出规定,这里我们采用下划线分隔式 $under_score
框架的使用方法
把你自己写的应用(程序)放在目录App
里面。取一个项目名字,例如Admin。目录结构可以直接复制Home里面的内容。
访问项目的方式
http://localhost/index.php?a=项目名&c=控制器名&a=方法名
例如:
http://localhost/index.php?a=Home&c=Index&a=index
视图文件
放在目录:
App/Home/View
里面。
你可以在View
文件夹里面创建任意子目录。例如我在View里面建立一个Header目录,里面放一个视图文件index.php
。
给视图文件传递变量
assign方法
<?php namespace APPHomeController; use HHTCoreControllerController; class IndexController extends Controller { public function index () { $this->assign('name', 'Ned'); } }
显示视图
<?php namespace APPHomeController; use HHTCoreControllerController; class IndexController extends Controller { public function index () { $this->display('Header/index.tpl'); } }
那么,你就可以在Header/index.php
视图文件中使用变量$name
了:
<!DOCTYPE html> <html> <head> <title>Header index.php</title> </head> <body> {$name} </body> </html>
此时{$name}会被解析为字符串Ned。
Model
采用了数据访问对象模式
配置数据库
例如,在App/项目/Conf/mysql.conf.php
文件中:
<?php
return [
'host' => '127.0.0.1', // 主机名(可以试试换成localhost可不可以)
'dbname' => 'test', // 需要连接的数据库的名字
'username' => 'root', // 用户名
'password' => '' // 密码
];
使用框架自带的方法
也就是使用框架核心代码HHTCore/Model/Model.php
中的方法
创建与数据表对应的Model类
假如我有一张数据表,叫作users
:
<?php namespace APPHomeModel; use HHTCoreModelModel; class UsersModel extends Model { protected $tbname = 'users'; // 设置数据表的名字(必须) protected $primary_key = 'id'; // 如果没有用到,可以不用设置 }
读取数据
假设users
表有如下记录:
id | name | status |
---|---|---|
1 | hht | 1 |
2 | hjm | 1 |
3 | zwx | 1 |
4 | lc | 0 |
比如说我想要查询status
为1的记录:
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->where('status', '=', 1)->find(); var_dump($res); } }
如果,我想要查询id
大于2的记录:
$res = $users->where('id', '>', 2)->find();
如果,我想要查询id
大于2并且id
小于4的记录:
$res = $users->where('id', '>', 2)->where('id', '<', 4)->find();
也就是说,查询条件与查询条件默认是AND
的关系。
更新数据
更新某条记录的某个字段值:
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->where('id', '=', 1)->update(['status' => 0]); } }
更新多条记录的某个字段值:
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->where('id', '>', 1)->update(['status' => 0]); } }
更新某条记录的多个字段值:
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->where('id', '=', 1)->update(['status' => 0, 'name' => 'haha']); } }
增加一条记录
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->insert([['id', 'name', 'status'], [7, 'zg', 1]]); var_dump($res); } }
删除记录
删除id为1的记录:
<?php namespace APPHomeController; use HHTCoreControllerController; use APPHomeModelUsersModel; class IndexController extends Controller { public function index () { $users = new UsersModel(); $res = $users->where('id', '=', 1)->delete(); } }
缓存
Redis缓存
配置
<?php return [ 'host' => '127.0.0.1', 'port' => 6379 ];
使用字符串数据结构
添加
使用add方法,如果缓存中不存在指定的key,那么我们可以添加到缓存中:
<?php namespace APPHomeController; use HHTCoreControllerController; use HHTCoreCacheRedisCache; class IndexController extends Controller { public function index () { $redis = new RedisCache(); $redis->add('key1', 'value1', 1); } }
获得
<?php namespace APPHomeController; use HHTCoreControllerController; use HHTCoreCacheRedisCache; class IndexController extends Controller { public function index () { $redis = new RedisCache(); $value = $redis->get('key1'); var_dump($value); } }
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。