资讯专栏INFORMATION COLUMN

基于PSR-0编码规范开发一套PHP-MVC框架(二)

graf / 3422人阅读

摘要:框架采用编码规范开发的一套框架,纯面向对象开发,依赖包管理模版引擎数据库类错误输出等在项目根目录下使用命令执行安装插件二入口文件。引入文件,开启错误提示插件三数据库配置文件。视图模版不存在七控制器操作数据并显示到页面。

一、composer依赖包管理工具。composer.json

</>复制代码

  1. {
  2. "name":"PHP-FRAME",
  3. "author":"Guoming.Zhang",
  4. "type":"FRAME",
  5. "version":"v1.0.0",
  6. "date":"2018-4-16 16:18:00",
  7. "keywords":["php","frame","PHP框架","MVC"],
  8. "description":"采用PSR-0编码规范开发的一套PHP框架,纯面向对象开发,composer依赖包管理、twig模版引擎、Medoo数据库类、Whoops错误输出等......",
  9. "require":{
  10. "twig/twig":"*",
  11. "catfan/medoo":"*",
  12. "filp/whoops":"*"
  13. }
  14. }

在项目根目录下使用命令执行 composer install 安装twig、medoo、whoops插件

二、入口文件。index.php 引入vendor/autoload.php文件,开启whoops错误提示插件

</>复制代码

  1. pushHandler(new WhoopsHandlerPrettyPageHandler);
  2. $whoops->register();
  3. ini_set("display_error","On");
  4. } else {
  5. ini_set("display_error","Off");
  6. }
  7. spl_autoload_register("frameApp::autoload");
  8. frameApp::run();
  9. ?>

三、数据库配置文件。configs/Database.php

</>复制代码

  1. "mysql",
  2. "database_name" => "redis",
  3. "server" => "localhost",
  4. "username" => "root",
  5. "password" => "root",
  6. "charset" => "utf8",
  7. "port" => 3306,
  8. "prefix" => "redis_",
  9. );

四、数据库操作类。frame/Libs/Model.php

</>复制代码

  1. 五、模型层操作数据库。app/Models/Users.php

  2. </>复制代码

    1. select($this->table,"*");
    2. }
    3. //增加用户
    4. public function addOne(array $data)
    5. {
    6. return $this->insert($this->table,$data);
    7. }
    8. //删除用户
    9. public function delOne(array $where)
    10. {
    11. return $this->delete($this->table,$where);
    12. }
    13. //修改用户
    14. public function editOne(array $data, array $where)
    15. {
    16. return $this->update($this->table,$data,$where);
    17. }
    18. }
  3. 六、视图层基类。app/Controllers/Controller.php

  4. </>复制代码

    1. BASEPATH."/storage/cache/" ) : [];
    2. $loader = new Twig_Loader_Filesystem(APP."/Views/");
    3. $twig = new Twig_Environment($loader, $twigConfig);
    4. $template = $twig->loadTemplate($file.".html");
    5. $template->display($data);
    6. } else {
    7. throw new Exception($file."视图模版不存在", 1);
    8. }
    9. }
    10. }
  5. 七、控制器操作数据并显示到页面。app/Controllers/Home/IndexController.php

  6. </>复制代码

    1. model = new Users;
    2. }
    3. public function index()
    4. {
    5. //获取所有用户
    6. $users = $this->model->lists();
    7. //删除用户
    8. // $del = $this->model->delOne(["id"=>1]);
    9. //修改用户
    10. // $update = $this->model->editOne(["user"=>"张三"],["id"=>2]);
    11. //视图模版渲染
    12. $this->view("Home/index",["users"=>$users]);
    13. }
    14. }
  7. 八、视图文件。app/Views/Home/index.html

  8. </>复制代码

    1. twig模版引擎
    2. {% for item in users %}
    3. 用户名:{{item.user}}
    4. 密码: {{item.pass}}
    5. {% endfor %}
  9. medoo数据库操作类官方文档:https://medoo.lvtao.net/doc.php
    twig模版引擎官方文档:https://www.kancloud.cn/yunye...
    github地址:https://github.com/305515319/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28620.html

相关文章

  • 基于PSR-0编码规范开发一套PHP-MVC框架(一)

    摘要:二站点全局配置文件。路由结构命名空间路由别名控制器方法四框架启动文件。加载控制器文件执行方法方法不存在控制器不存在自动加载类文件五加载配置类。文件名键名获取全部选项配置文件不存在六路由类。欢迎使用框架八隐藏文件。九本地域名访问。 一、入口文件。index.php 二、站点全局配置文件。configs/Website.php

    hqman 评论0 收藏0
  • 现在写 PHP,你应该知道这些

    摘要:首先你应该是在用以上的版本,如果版本在这之下,是时候该升级了。按照其官网的说法,这个组织的目的并不是告诉你你应该怎么做,只是一些主流的框架之间相互协商和约定。和没有出现在以上的列表中,是因为还没有投票通过。不要被这些话所困扰。 首先你应该是在用 PHP 5.3 以上的版本,如果 PHP 版本在这之下,是时候该升级了。我建议如果有条件,最好使用最新的版本。 你应该看过 PHP The R...

    supernavy 评论0 收藏0
  • 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备

    摘要:原文发表在我的个人网站利用一步一步构建自己的框架一基础准备一统天下的时代已经到来白岩松一个时代结束了另一个时代开始了。框架可互用性小组,简称,成立于年。 原文发表在我的个人网站 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 『Composer 一统天下的时代已经到来!』 ——白岩松 一个时代结束了,另一个时代开始了。 Framework ...

    gougoujiang 评论0 收藏0
  • PHP中对PSR-1、PSR-2规范理解

    摘要:目前已表决通过了套标准,已经得到大部分框架的支持和认可。类中的常量所有字母都必须大写,单词间用下划线分隔方法名称必须符合式的小写开头驼峰命名规范。日志接口规范详见自动加载规范详见缓存接口规范详见消息接口规范详见,暂无中文翻译 PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG。就是这个联盟组织发明和创造了PSR-[0-4]规范 ...

    lieeps 评论0 收藏0
  • PHP面试知识梳理

    摘要:三次握手所谓三次握手,是指简历一个连接时需要客户端和服务器总共发送三个包三次握手的目的是连接服务器指定端口,简历连接,并同步连接双方的序列号并交换窗口大小信息。 关于作者 昨天在思否上发了这篇整理,晚上10点多看到了很多赞收藏和关注,其实挺愧疚的,因为最近在找工作这篇文章并没有整理完。看到这个还挺受欢迎的,也因为新工作基本定下来了,现在的公司正常交接中,打算下周末之前把这个知识梳理整理...

    archieyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<