cakephp开始使用cakephp


备注

本节概述了cakephp是什么,以及开发人员为什么要使用它。

它还应该提到cakephp中的任何大型主题,并链接到相关主题。由于cakephp的文档是新的,您可能需要创建这些相关主题的初始版本。

版本

发布日期
1.2.0 2008-12-26
1.3.0 2010-04-25
2.0.0 2011-10-17
3.0.0 2015年3月22日

基本第一个空项目

初始创建和下载 (CakePHP 3.x)

创建一个新的CakePHP项目最简单的方法是通过Composer(如果你不知道作曲家在这里看到更多信息)

安装Composer

如果您需要安装它并且在Windows机器上,请遵循本指南

如果您使用的是Linux / Unix / OSX,请遵循本指南

创建第一个CakePHP项目

打开一个控制台窗口并导航到你的php安装(在Windows上使用默认的xampp安装,这是C:\xampp\php

要创建空项目,请运行以下命令:

php composer.phar create-project --prefer-dist cakephp/app name_of_your_project
 

烘焙/模型/视图/控制器

CakePHP的神奇之处在于烘焙 - 使用基本CRUD选项自动生成控制器,模型和视图代码。

在烘焙之前,您需要配置数据库连接。为此,您需要编辑项目中的文件config/app.php

'Datasources' => [
'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'username' => 'my_app', //in basic xampp: root
    'password' => 'sekret', //in basic xampp: ''
    'database' => 'my_app', //name of the database you want to connect to your project
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'cacheMetadata' => true,
]
 

]

如果数据库连接正确,则在控制台窗口中输入项目根文件夹中的bin/cake bake

这应该输出这样的东西:

Welcome to CakePHP v3.1.6 Console
---------------------------------------------------------------
App : src
Path: /var/www/cakephp.dev/src/
PHP: 5.5.8
---------------------------------------------------------------
The following commands can be used to generate skeleton code for your application.

Available bake commands:

- all
- behavior
- cell
- component
- controller
- fixture
- form
- helper
- mailer
- migration
- migration_snapshot
- model
- plugin
- shell
- shell-helper
- template
- test

By using `cake bake [name]` you can invoke a specific bake task.
 

为简单起见,我们将使用默认设置烘焙所有内容。为此,请输入

cake bake all
 

这将输出以下内容:

Welcome to CakePHP v3.2.11 Console
---------------------------------------------------------------
App : src
Path: C:\xampp\htdocs\tipping\src\
PHP : 5.6.15
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible model names based on your database:
- users
- blogs
Run `cake bake all [name]` to generate skeleton files.
 

通过运行cake bake all <modelNameYouWantToBake> ,可以创建模型,表,控制器,fixture和视图文件。对每个可能的型号名称运行此选项,您将拥有一个具有基本CRUD选项的功能项目。

现在,您可以打开浏览器并查看其外观,并按照您自己的逻辑开始扩展项目

CakePHP 2.x基本介绍

将讨论CakePHP的目录结构,每个文件夹的含义。

CakePHP有一些主要文件夹

  1. app - 它包含我们的应用程序源代码,我们所有的代码都在这个目录下。
  2. lib - 这是cakephp的核心版权,它包含了所有基本的cakephp库代码。不建议在此目录中编辑代码,因为它们在升级cakephp库时可能会导致错误。
  3. 插件 - 这包含将用于我们的应用程序的cakephp插件代码。
  4. 供应商 - 这包含外部代码,此代码不会使用cakephp库。
  5. index.php - 这是索引文件。

我们可以在一个项目中托管多个应用程序。即他们可以使用相同的lib文件夹,插件和供应商。

要修改lib代码,最佳做法是在我们的app文件夹中扩展它们并执行修改。

插件和供应商文件夹由同一目录中托管的所有应用程序共享。

index.php是首先调用的文件。

在此处输入图像描述

现在我们应该跳转到我们的app文件夹

CakePHP3文件夹结构

下载后,这些是您应该看到的文件和文件夹:

  • bin文件夹包含Cake控制台可执行文件。
  • config文件夹包含CakePHP使用的配置文件。数据库连接详细信息,引导,核心配置文件等应存储在此处。
  • plugins文件夹是存储应用程序使用的插件的位置。
  • logs文件夹通常包含您的日志文件,具体取决于您的日志配置。
  • src文件夹将放置应用程序的文件。
  • tests文件夹将放置应用程序的测试用例。
  • tmp文件夹是CakePHP存储临时数据的位置。它存储的实际数据取决于您如何配置CakePHP,但此文件夹通常用于存储模型描述,有时还用于存储会话信息。
  • vendor文件夹是CakePHP和其他应用程序依赖项的安装位置。个人承诺不编辑此文件夹中的文件。
  • webroot目录是应用程序的公共文档根目录。它包含您想要公开访问的所有文件。

确保tmplogs文件夹存在且可写,否则应用程序的性能将受到严重影响。在调试模式下,如果情况不是这样,CakePHP会发出警告。

在src文件夹里面

CakePHP的src文件夹是您进行大部分应用程序开发的地方。

Console文件夹包含应用程序的控制台命令和控制台任务。有关更多信息,请参阅外壳,任务和控制台工具。

Controller文件夹包含应用程序的控制器及其组件。

Locale文件夹存储用于国际化的字符串文件。

模型文件夹包含应用程序的表,实体和行为。

视图 - 表示类放在此处:单元格,帮助程序和模板文件。

模板 - 表示文件放在此处:元素,错误页面,布局和视图模板文件。

安装或设置

要求

以下设置指南适用于cakephp 2.8及以上版本。所有低于2.8的cakephp版本都与php 7不兼容

HTTP服务器。例如:Apache。拥有mod_rewrite是首选,但绝不是必需的。

  • PHP 5.5.9或更高版本(包括PHP 7)。
  • mbstring PHP扩展
  • intl PHP扩展

注意!在XAMPP和WAMP中,默认情况下mbstring扩展名正在工作。在XAMPP中,包含了intl扩展,但您必须在php.ini中取消注释extension = php_intl.dll并通过XAMPP控制面板重新启动服务器。在WAMP中,intl扩展默认为“激活”但不起作用。为了使它工作,你必须转到php文件夹(默认情况下)C:\ wamp \ bin \ php \ php {version},复制所有看起来像icu * .dll的文件并将它们粘贴到apache bin目录C: \ WAMP \ BIN \ apache的\ apache的{}版本\ BIN。然后重新启动所有服务,它应该没问题。

虽然不需要数据库引擎,但我们想象大多数应用程序都会使用一个。 CakePHP支持各种数据库存储引擎:

  • MySQL(5.1.10或更高版本)
  • PostgreSQL的
  • Microsoft SQL Server(2008或更高版本)
  • SQLite 3

要求

1-HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required.
2-PHP 5.5.9 or greater (including PHP 7)
3-mbstring PHP extens ion
4-intl PHP extension
 

我经常在linuxbox上安装apache和mysql。我也可以使用Windows,但是我不推荐它;)所以,我通常在/ etc / hosts文件中创建一个新的条目,以便为cakephp提供一个sitename。

127.0.0.1   localhost caketest.local
 

下一步将所有cakephp文件复制到/ home / myusername / public_html / caketest中的子目录中

app
cake
index.php
plugins
README
vendors
.htaccess
 

然后我将网站设置为apache(不是必要的),

<VirtualHost *:80> DocumentRoot“/ home / myusername / public_html / caketest”ServerName caketest.local
#这应该在生产环境SetEnv APPLICATION_ENV开发中省略

<Directory "/home/myusername/public_html/caketest">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
 

重启apache。您还需要编辑.htaccess文件并将带有hte路径的RewriteBase指令放到实际目录中,例如

 RewriteBase /~myusername/caketest
 

创建一个数据库,在蛋糕配置文件中设置数据库连接,这就是全部。您可以将浏览器指向http://caketest.local,如果您不想要测试站点URL,您可以跳过主机,并创建apache vhost,但要使用的URL应为http:/ localhost / ~myusername / caketest

另一个重要的事情是在apache中启用userdir modul,并检查是否在userdirs中启用了php。