目录结构

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、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。