如何安装和设置Kohana,一个PHPWeb应用程序开发框架
介绍
在众多基于 PHP 的框架中,Kohana 以其遵循共同约定和规则来开发完全面向对象的 Web 应用程序的理念而与众不同。 这个 BSD 许可框架不附带商业字符串,它具有 由社区构建,为社区 类型的理念。
在这个由三部分组成的 DigitalOcean 系列中,我们将介绍开发人员应该熟悉的所有基本知识,以便开始使用 PHP5 Kohana 框架构建 Web 应用程序。 我们将从一些基础知识开始,在安装框架后继续介绍关键概念和模块。
注意: 这是我们Kohana系列的第一篇文章-主要包括基础知识和安装。 要继续学习创建 Web 应用程序的框架,请查看其续集 使用 HMVC PHP5 框架 Kohana 构建 Web 应用程序。
词汇表
1. Web 应用程序开发框架
1. What Are Frameworks? 2. What Makes a Framework "Light"?
2. Kohana 框架
1. Kohana's Features 2. Kohana's Standard (Out-of-The-Box) Modules
3. 模型 - 视图 - 控制器模式
1. Routing Structure 2. Model 3. View 4. Controller 5. Template Files
4. Kohana 编程和准备工作
5. 下载和安装 Kohana 框架
6. Kohana 安装入门
1. Bootstrapping The Setup 2. Setting Application Directory Permissions 3. Finalizing Everything and Testing
Web 应用程序开发框架
Kohana 是一个 Web 应用程序开发框架。 鉴于 PHP 作为一种语言的性质以及编写的代码在计算机上执行的方式,在使用它时利用框架来快速开发应用程序没有严格的要求。 但是,对于任何旨在具有较长(-ish)生命周期的严肃应用程序(利用已经编写过一次的代码并且有多个开发人员在使用它),使用框架意味着使 大量的东西[ X223X] 简单得多。
什么是框架?
与框架一词的字典定义非常相似,Web 应用程序框架既提供了开始开发 [应用程序] 的基本结构,又提供了一个粘合层,以一种合理且合乎逻辑的方式将所有内容组合在一起,这对于熟悉框架本身的人来说是有意义的.
这些基础带有许多开发 Web 应用程序几乎总是需要的必要通用工具,例如处理传入请求、生成和填充模板、返回响应、处理安全性和身份验证、管理 cookie(和会话) 等等[ X293X]。
是什么让框架“轻”?
根据框架附带的 tools 的数量,它可以被称为轻量级或一体化(全堆栈,包括电池等)解决方案。 尽管 Kohana 非常强大且功能丰富,但仍然可以被认为是轻量级的,因为它为使用它的开发人员提供了自由,以及它的设计和运行方式。
Kohana 框架
Kohana HMVC(分层模型视图控制器)框架提供 - 可能 - 构建现代 Web 应用程序所需的所有工具,该应用程序可以使用 PHP [5] 语言快速开发和轻松部署/维护。
小花的特点
与其他类似的解决方案相比,Kohana 的特点是 而不是 ,而是它呈现这些特性的方式以及它如何执行它们。
- Kohana 附带了许多常用的附加工具(模块),例如 加密、 验证、 数据库访问 等。
- 它提供了简单扩展默认值的可能性。
- 允许使用其 BSD 许可构建商业应用程序。
- 与繁重而复杂的框架相比,入门和设置非常快速和容易。
- 所有模块和事物的功能方式都是使用类和对象设计和构建的。 该框架坚持“不要重复自己”的原则。
- 提供分析和调试工具。
- 它的代码有很好的文档记录,并且附带了一个相对较好的文档,其中包含示例和很好的解释。
- 更喜欢遵循 约定 而不是 [无尽和令人沮丧的] 配置 。
Kohana 的标准(开箱即用)模块
以下是 Kohana 的一些开箱即用模块。
- Auth: 用户认证和授权。
- Cache: 缓存引擎的通用接口。
- Codebench: 代码基准测试工具。
- Database: 与数据库无关的查询和结果管理。
- Image: 图像处理模块。
- ORM(Object Relational Mapper): 对象关系映射的建模库。
- Unittest: 单元测试模块。
模型 - 视图 - 控制器模式
MVC(模型 - 视图 - 控制器)应用程序模式用于根据它们的角色 和 将代码和逻辑结构划分为组,它们将执行什么。 这些部分中的每一个都在自己内部处理信息,然后在彼此之间共享必要的输出以共同完成工作,形成最终呈现(即 结果)到最终用户(即 URL 访问的结果)。
路由结构
遵循 MVC 模式,请求在返回结果之前要经过一个过程(类似于下面的示例)。
(1) (2) (3) Request ---> Parsing ---> Matching [Data] .. [] >> .. [] > [] [] [] .. .. .>. .. . ........ (4) (5) (6) Routing ---> Controller ---> Response ----- .. >> .. >> .. ../\ .. /\ [] >> [] >> [Data] || . || \/ . \/ Model View
模型
在模型中,存在对象类的定义和数据操作的处理。 在这一层,与应用程序的其他部分没有直接交互(例如 意见)。 当一个新事件发生时,model 让它成为它的父级(即 控制器)知道。
看法
视图层由 视图 的文件组成(例如 数据表示)生成。 控制器对象使用视图将最终结果呈现给用户。
控制器
在控制器中,来自request的解析数据使用模型和视图进行处理,通过actions生成文件response。 控制器就像胶水一样,将所有部件连接起来一起工作。
模板文件
模板文件形成了一个基础,通常用于帮助维护由应用程序呈现给最终用户的某些数据的表示。 在 PHP 应用程序方面,PHP 语言同样充当模板语言,因此提供了 模板语法 。
Kohana 编程和准备工作
Kohana 作为一个轻量级框架,由散布在精心构建的目录中的一堆文件组成,这些文件最终被传输到生产服务器并用于运行 Web 应用程序。 因此,每个 Kohana 包都可以被视为一个 [新] Web 应用程序。
注意: 在我们的示例中,我们将使用一个 Droplet,运行最新版本的 Ubuntu。 要使用 Kohana 构建 Web 应用程序,您可以在家用计算机上工作直到生产步骤,然后推送您的代码以供发布。
注意: 我们将使用在我们的 Droplet 中设置的默认 LAMP(Linux - Apache - MySQL - PHP)来与 Kohana 一起工作。 要在 Ubuntu droplet 上快速设置 LAMP 堆栈,您可以使用:
sudo apt-get install tasksel sudo tasksel install lamp-server
下载和安装 Kohana 框架
Kohana 的最新可用版本是 3.3.1
。 为了将其下载到我们的 VPS,我们将使用 wget
(即 GNU Wget 命令行工具)。
wget https://github.com/kohana/kohana/releases/download/v3.3.1/kohana-v3.3.1.zip
下载后,我们需要解压压缩包。 为此,我们将使用 unzip 命令并将 ""my_app 设置为提取文件夹。
# You might need to install *unzip* before extracting the files aptitude install -y unzip # Unzip and extract the files unzip kohana-v3.3.1.zip -d my_app # Remove the zip package rm -v kohana-v3.3.1.zip
一旦我们准备好框架包,我们可以将其移动到更永久的位置以使其与 Apache 一起工作。 我们 LAMP 安装的默认位置是 /var/www/
# Remove the *index.html* inside /var/www rm -v /var/www/index.html # Move the application directory inside mv my_app /var/www/ # Enter the directory cd /var/www/my_app
从现在开始,您的安装将可以从 WWW 访问。
# Visit: http://[your droplet's IP adde.]/my_app/ http://95.85.44.185/my_app/
注意: Kohana 还没有准备好工作。 它的配置需要先设置(即 自举)。
Kohana 安装入门
引导设置
在我们开始学习开发应用程序的步骤之前,让我们引导并完成它的安装过程。
运行以下命令以使用 nano 文本编辑器编辑引导文件:
nano application/bootstrap.php
编辑您的时区:
# Find date_default_timezone_set and set your timezone date_default_timezone_set('Europe/London');
设置您的语言环境:
# Find setlocale and set your locale setlocale(LC_ALL, 'en_UK.utf-8');
设置基本应用程序目录位置:
# Find base_url and set the base application directory # Relative to the base Apache directory (i.e. /var/www/) Kohana::init(array( 'base_url' => '/my_app/', ));
启用模块:
# Find Kohana::modules and uncomment them Kohana::modules(array( 'auth' => MODPATH.'auth', // Basic authentication 'cache' => MODPATH.'cache', // Caching with multiple backends 'codebench' => MODPATH.'codebench', // Benchmarking tool 'database' => MODPATH.'database', // Database access 'image' => MODPATH.'image', // Image manipulation 'orm' => MODPATH.'orm', // Object Relationship Mapping 'oauth' => MODPATH.'oauth', // OAuth authentication 'pagination' => MODPATH.'pagination', // Paging of results 'unittest' => MODPATH.'unittest', // Unit testing 'userguide' => MODPATH.'userguide', // User guide and API documentation ));
按 CTRL+X 保存并退出,然后按 Y 确认。
设置应用程序目录权限
为了运行 Kohana,我们需要标记它的两个文件夹可写。
sudo chmod -R a+rwx application/cache sudo chmod -R a+rwx application/logs
完成一切并测试
一旦我们完成了引导设置和配置文件夹权限,我们可以通过使用 Web 浏览器访问应用程序来再次测试它
# Visit: http://[your droplet's IP adde.]/my_app/ http://95.85.44.185/my_app/
当您确认一切设置正确且工作正常时,您可以移除 install.php
。
运行以下命令删除安装文件:
rm -v install.php
如果您重新访问上一步中的 URL,您将收到 hello, world! 消息欢迎您。 这意味着我们的请求现在可以按照正确的模式通过 HMVC 流程进行路由。