0

0

你是寒夜里的一道光!

php中文网

php中文网

发布时间:2016-07-29 09:08:03

|

1411人浏览过

|

来源于php中文网

原创

1.1 框架的概念
框架其实就是可重用代码的集合,框架的代码是框架架构的代码,不是业务逻辑代码,框架代码保护类.方法.函数等等,框架代码按照一定的规则组合起来就形成了框架。
1.2 不使用框架开发的时候遇到的问题
  1.代码编写没有统一的规范
  2.项目功能不能很好的拆分
  3.一个局部的微小改动可能会影响全局
  4.项目的升级比较麻烦
1.3 使用框架的好处
  1.有利于团队统一的代码风格
  2.将精力全部集中到业务逻辑上,无需关心底层框架
  3.快速.稳定高效的搭建程序
  4.节省大量代码
  5.后期维护升级很方便
1.5 相关的框架
  1. zendframwork: 有zend官方发布(zend 公司是维护升级php语言的公司),功能非常的强大,是一个重量级的框架
  2.yii:由国人开发的重量级的框架,这个框架把代码的可重用性发挥到极致
  3.cakephp:国外的框架,速度慢
  4.symfony:国外的框架
  5.ci:(code igniter),轻量级框架,运行速度快
  6.thinkphp框架,免费的,开源的,快速,简单面向对象(里面的代码既有面向对象,也有面向过程),原名fcs,2007年元旦更名为thinkphp
1.6 thinkphp文件结构
  从http://www.thinkphp.cn/官方网站上下载tp框架,下载完成后进行解压,第一类目录里  的thinkphp即是我们框架的核心代码,类似于framework文件夹
  conf:配置文件夹,供建立在此tp框架的所有项目使用
  library:类库
1.7.1 thinkphp下的library文件夹
  behavior:框架运行时侯辅助的类
  think:thinkphp核心的代码
  vendor:第三方的一些插件
1.7.2 thinkphplibrary下的think文件夹
  需要注意的几个文件:
  controller.class.php:基础控制器
  model.class.php:基础模型
  think.class.php:每次请求都要执行带文件
  view.class.php:基础视图
1.8 搭建框架的结构
  在站点下新建一个index.php(入口文件),在index.php中输入:
  define('app_path','./application/'); //定义项目文件夹,需要以/结尾
  require './thinkphp/thinkphp.php';   //包含thinkphp.php文件
注意:在tp框架中可以支持多个入口文件,(也就是说支持多个项目);
1.8.1 define('app_path','./application/')
  定义项目文件夹,第一次执行该页面的时候,如果没有application文件夹,会自动创建application文件夹。当执行thinkphp.php文件时,第一次会自动搭建thinkphp框架结构。
1.9 创建控制器
  控制器是一个类文件,规范如下:
  1.存放在模块(平台)文件夹下的controller文件夹
  2.类名:控制器+controller,用帕斯卡命名法
  3.类名和文件名同名
  4.文件名以 .class.php结尾
  5.thinkphp默认使用utf-8编码
  6.尽量区分大小写,windows中没有问题的,但是linux中会区分大小写
注意创建控制器的时候命名空间和引入基础控制器。
1.10 thinkphp的4中路由
    要精确到定位到方法上,需要3个参数:平台.控制器.方法,这三个参数。
a)普通模式:
  语法:http://网址/index.php/m=模块&c=控制器&a=方法
b)pathinofo()模式:
语法:http://网址/index.php/模块/控制器/方法
c) 兼容模式:
  语法:http://网址/index.php?s=/模块/控制器/方法
d) rewrite 重写模式:
  url自定义功能通过重写路由可以使得url便简介还可以隐藏真实的路径。
  伪静态技术就是重写模式。
需要用到的配置项:
  'url_router_on' => true, //开启路由
  'url_route_rules' => array(
  'test' => 'home/goods/test',
), //路由规则
重定向传递参数
1.11 定义.调用模板
1.11.1 规则
  tp框架调用模板非常简单,功能也很强大。它有自身的一些规则
  1.模板都放在view目录中
  2.一个控制器对应一个文件夹,一个方法对应一个页面
1.11.2 调用模板
  $this->display();
1.11.3 在控制器中给变量赋值
  $this->assign('name','tom') //第一种方法
  $this->sex='男'; //第二种方法
1.11.4 在模板中取值
  {$name}
1.12 项目分组
  一个项目至少分成两组,一个前台,一个后台,每组都有自己的mvc。当tp框架自动生成项  目架构的时候会自动生成一个前台的分组。
  在和home同级的目录中新建admin文件夹(后台文件夹),在文件夹中新建自己的mvc
1.13 系统常量
  __self__ : 当前请求的地址
  __model__ :当前模块
  __controller__ :当前控制器
  __action__ : 当前方法
get_defined_constants(true)显示所有的常量,true表示分组显示。
问题:__controller__常量是php的常量,我们发现直接将此常量写在模板中一样可以解析,请问为什么php常量可以在html模板中输出?在php定义一个常量name,如何在模板中输出name的值?
在contentreplacebehavior.class.php 文件templatecontentreplace()方法中添加一个字符串替换
1.14 在页面的底部显示日志信息
'show_page_trace'   =>  true    //在页面的底部显示日志信息
配置后会在页面右下角出现一个绿色的小图标
1.15  tp生产和开发模式
define('app_debug', true);      //开发模式
define('app_debug', false);      //生产模式
1.15.1 开发模式
  1.错误提示比较友好
  2.代码的修改会立即显示效果
  3.执行效率低
1.16.2 生成模式
  1.错误提示比较模糊
  2.会把很多核心代码文件制作成一个缓存文件(common~runtime.php),这样原来需要加载很多文件的请求现在只要加载一个文件即可。节省了很多打开、关闭的开销。

以上就介绍了你是寒夜里的一道光!,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

127

2026.02.25

Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法
Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法

本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。

18

2026.02.25

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

15

2026.02.25

Python数据处理流水线与ETL工程实战
Python数据处理流水线与ETL工程实战

本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。

1

2026.02.25

Java领域驱动设计(DDD)与复杂业务建模实战
Java领域驱动设计(DDD)与复杂业务建模实战

本专题围绕 Java 在复杂业务系统中的建模与架构设计展开,深入讲解领域驱动设计(DDD)的核心思想与落地实践。内容涵盖领域划分、聚合根设计、限界上下文、领域事件、贫血模型与充血模型对比,并结合实际业务案例,讲解如何在 Spring 体系中实现可演进的领域模型架构,帮助开发者应对复杂业务带来的系统演化挑战。

1

2026.02.25

Golang 生态工具与框架:扩展开发能力
Golang 生态工具与框架:扩展开发能力

《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。

18

2026.02.24

Golang 性能优化专题:提升应用效率
Golang 性能优化专题:提升应用效率

《Golang 性能优化专题》聚焦 Go 应用在高并发与大规模服务中的性能问题,从 profiling、内存分配、Goroutine 调度、GC 机制到 I/O 与锁竞争逐层分析。结合真实案例讲解定位瓶颈的方法与优化策略,帮助开发者建立系统化性能调优思维,在保证代码可维护性的同时显著提升服务吞吐与稳定性。

9

2026.02.24

Golang 面试题精选:高频问题与解答
Golang 面试题精选:高频问题与解答

Golang 面试题精选》系统整理企业常见 Go 技术面试问题,覆盖语言基础、并发模型、内存与调度机制、网络编程、工程实践与性能优化等核心知识点。每道题不仅给出答案,还拆解背后的设计原理与考察思路,帮助读者建立完整知识结构,在面试与实际开发中都能更从容应对复杂问题。

6

2026.02.24

Golang 运行与部署实战:从本地到云端
Golang 运行与部署实战:从本地到云端

《Golang 运行与部署实战》围绕 Go 应用从开发完成到稳定上线的完整流程展开,系统讲解编译构建、环境配置、日志与配置管理、容器化部署以及常见运维问题处理。结合真实项目场景,拆解自动化构建与持续部署思路,帮助开发者建立可靠的发布流程,提升服务稳定性与可维护性。

5

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号