CakePHP 初学者教程:什么是 CakePHP 框架?
CakePHP 教程摘要
在本 CakePHP 教程中,我们将从头开始学习所有基本概念。本教程涵盖了 CakePHP 的定义、历史、特性、文件夹结构和配置,以及对 CakePHP 框架工作原理的简要介绍。
什么是 CakePHP?
CakePHP 是一个开源框架,用于使用 PHP 构建的 Web 应用程序的快速开发和维护。它基于 MVC 架构的概念,这有助于以更少的代码轻松简单地构建 PHP Web 应用程序。CakePHP 还有助于将业务逻辑与数据层和表示层分开。
为什么使用 CakePHP 框架?
以下是使用 CakePHP 框架的主要优势/优点
- Cake PHP 是迄今为止最快的 Web 开发平台之一。
- CakePHP 允许开发人员增强对数据库和 SQL 查询的控制。
- 它有助于用户快速开发健壮的 Web 应用程序,而不会失去环境的灵活性。
- 支持 PostgreSQL、SQLite、MySQL、PEAR-DB for ADODB(数据库抽象库)。
- 提供搜索引擎友好的 URL
- 提供输入验证和清理工具等功能,使应用程序更安全。
- 使用熟悉的 PHP 语法进行模板化
CakePHP 的历史
现在,在本 CakePHP 教程中,我们将介绍 CakePHP 框架的历史
年份 | 里程碑 |
---|---|
2005 | CakePHP 由 Michal Tatarynowicz 于 2005 年 4 月 15 日开发。 |
2005 | CakePHP 已根据 MIT 许可证发布,并开放给社区开发人员。 |
2005 | Larry E Masters 接任首席开发人员。 |
2006 | 发布了 1.0 版本 |
2011 | 发布了 2.0 版本 |
2014 | 发布了 3.0 版本,这是对早期版本的一次彻底重写。 |
2016 | CakePHP 3.3.3 版本发布,具有许多高级功能。 |
2019 | 3.7.9 版本是发布的最后一个版本 |
2021 | CakePHP 核心团队宣布 CakePHP 4.2.2 可供立即使用 |
CakePHP 的特性
以下是 CakePHP 的重要特性。
- 活跃、友好的社区
- MVC 架构
- 内置验证
- 可从任何网站目录运行,无需或仅需少量 Apache 配置。
- 模板引擎
- 缓存操作
- 简单的 CRUD 数据库交互。
- 内置验证
- 处理电子邮件、Cookie、安全、Session 和 Request 等组件
- 视图助手,用于 JavaScript、Ajax、HTML 表单等
CakePHP - 文件夹结构
现在,在本 CakePHP 框架教程中,我们将学习 CakePHP 的文件夹结构。
以下是 CakePHP 的文件夹结构
文件夹 | 描述 |
---|---|
Tests | 此文件夹包含应用程序的测试用例。 |
Tmp | 临时文件夹存储临时数据。 |
Vendor | 此文件夹用于存储 CakePHP,以及其他应用程序依赖项将被安装。 |
Webroot | Webroot 存储所有您希望公开访问的文件。 |
Bin | Bin 文件夹包含 Cake 控制台可执行文件。 |
Logs | 它包含您的日志文件,具体取决于您的日志配置。 |
Config | Config 文件夹存储 CakePHP 使用的配置文件。 |
插件 | 此文件夹包含应用程序的插件。是存储应用程序使用的插件的地方。 |
Src | 它包含用于管理应用程序的控制台任务和命令。
Locale 存储用于国际化的字符串文件。 Model 包含应用程序的表、实体和行为。 |
CakePHP 的配置
CakePHP 默认附带一个配置文件。它还允许您根据需要进行修改。有一个名为“config”的文件夹用于此目的。
变量名 | 描述 |
---|---|
调试 | 允许您更改 CakePHP 的调试输出。 |
App.namespace | 帮助您查找应用程序类。 |
App.baseUrl | 当您不想使用 Apache 的 mod_rewrite 与 CakePHP 时,取消注释此关键字。 |
App.encoding | 此命令允许您定义应用程序使用的编码。 |
App.base | 这是应用程序所在的基目录。如果为 false,则会自动检测。 |
App.fullBaseUrl | 合格域名 |
App.webroot | 这是 webroot 目录。 |
App.wwwRoot | webroot 的文件路径。 |
App.jsBaseUrl | 公共 js 目录的路径。 |
App.paths | 配置非类资源路径。 |
App.cssBaseUrl | 这是 webroot 下公共 css 目录的 Web 路径。 |
Security.salt | 用于哈希处理的随机字符串。 |
Asset.timestamp | 当使用正确的助手时,此变量允许您附加时间戳。 |
Cake - PHP 命名约定
Cake 遵循约定优于配置的理念。命名约定方法允许您组织 Web 应用程序的操作。在此方法中,名称中超过一个单词必须用“_”分隔(用于文件名)和驼峰命名法(用于类名)。
MVC 部分必须遵循以下语法
文件名 | 类名 | 基类名 | 地点 | |
---|---|---|---|---|
模型 | 文件名 表名的单数形式,带 .php 扩展名,例如:order.php |
驼峰命名法的文件名,例如:Order | AppModel | /app/models |
控制器 | tablename_controller,带 .php 扩展名,例如:ordcrs_controllcr.php | 附加 Controller 的表名,例如:OrdcrsController | AppController | /app/controllers |
查看 | 控制器中的操作名称,带 .ctp 扩展名,例如:add.ctp | 没有类;一个视图,包含 HTML 标签和 PHP。 | /app/vuews/controller name |
数据库配置
CakePHP 允许您在 config/app.php 文件中配置数据库。它提供默认连接和提供的参数,您可以根据自己的喜好进行修改。
重要的参数如下
数据库 | 数据库名称 |
---|---|
port (可选) encoding |
用于连接到服务器的 TCP 端口或 Unix 套接字。 |
Timezone | 设置服务器时区。 |
模式 | 它有助于您指定可以使用哪个架构。 |
unix_socket | 此数据库用于驱动程序通过 Unix 套接字文件进行连接。 |
SSL key | SSL 密钥文件的文件路径。 |
ssl_cert | SSL 证书文件的文件路径。 |
ssl_ca | SSL 证书颁发机构的文件路径。 |
日志 | 此术语有助于您执行查询日志记录。 |
Init | 在创建连接时应发送到数据库服务器的一系列查询。 |
如果想使用保留字或特殊字符,请设置为 true |
MVC 在 CakePHP 中如何工作?
现在,在本 CakePHP 框架教程中,我们将学习 CakePHP 中的 MVC 工作原理。
它是构建 Web 应用程序主要机制的动态方式。模型、视图和控制器彼此分离。
Cake PHP 将操作分为三个部分
- Models:用于所有数据库交互。
- Views:用于所有输出和显示。
- Controllers:用于控制应用程序流程
以下是 CakePHP 中使用 MVC 架构的步骤
步骤 1) 客户端或用户与视图交互
步骤 2) 视图通知控制器特定的事件。
步骤 3) 它向模型发送数据库请求,控制器更新模型。
步骤 4) 模型通知视图它已更改。
步骤 5) 视图接收模型数据并根据接收到的数据自行更新。
为什么使用 MVC?
- CakePHP MVC 帮助您将业务逻辑与表示和数据检索分离。
- 站点被划分为逻辑部分,您可以使用特定的控制器进行管理。
- 在测试和调试应用程序时,任何开发人员都可以帮助您定位和纠正错误,而无需了解代码的全部细节。
使用 CakePHP 框架的缺点
- CakePHP 的文档支持不如预期全面。
- 要使用 CakePHP 软件,开发人员需要更新默认路由以创建漂亮的 URL,这比其他 PHP 框架的工作量要大得多。
- 与其他框架相比,CakePHP 采用单向路由。
- 学习 PHP 框架并不容易。
- 与 Ruby on Rails 等框架相比,单向路由是另一个缺点。
摘要
- CakePHP 是一个开源框架,有助于简化 PHP 应用程序的开发和维护。
- CakePHP 允许开发人员增强对数据库和 SQL 查询的控制。
- 它由 Michal Tatarynowicz 于 2005 年 4 月 15 日开发
- MVC 架构和内置验证是 CakePHP 最重要的功能
- CakePHP 默认附带一个配置文件,允许您根据需要进行修改。
- CakePHP 的命名约定方法允许您组织 Web 应用程序的操作。
- CakePHP 允许您在 config/app.php 文件中配置数据库。
- Cake PHP 将 MVC 操作分为三个部分
- Models:用于所有数据库交互,Views:用于所有输出和显示,Controllers:用于控制应用程序流程
- 使用 CakePHP 中的 MVC 的最大优势在于,它有助于您将业务逻辑与表示和数据检索分离开来。
- CakePHP 的最大缺点是其文档支持不如预期全面。