friendsofcake / app-template
一个空的 CakePHP 2.5 应用程序
Requires
- php: >=5.4
- ad7six/dsn: 0.3.*
- cakephp/cakephp: 2.*
- composer/installers: ~1.0
- friendsofcake/crud: 3.*
- josegonzalez/dotenv: 1.*
Requires (Dev)
- cakephp/debug_kit: 2.2.*
This package is not auto-updated.
Last update: 2024-09-14 15:40:02 UTC
README
一个用于 composer 的空的 CakePHP 项目
要求
PHP 5.4 及以上。
安装
composer -sdev create-project friendsofcake/app-template ProjectName
这将根据此存储库创建一个新的项目,包括依赖项。请确保将 web 服务器指向 webroot
文件夹,并确保已正确配置URL 转写。
合理的默认配置
默认情况下,以下功能已被启用
- Composer 自动加载
- 设置时区为 UTC
- 设置数据库连接编码为 utf8
您可以在任何空闲时间更改这些设置。
应用程序配置
此模板已设置,通过环境变量和数据源名称(DSN)配置应用程序。
什么是环境变量?
通过环境变量定义配置设置可以使代码与其运行配置之间有清晰的分离。为了去除任何复杂性,此存储库包括josegonzalez/php-dotenv,它会自动配置环境(如果尚未定义)。
什么是 DSN?
DSN 是一个字符串,它定义了如何连接到某个服务。由于它是一个字符串,因此它是可移植的,不依赖于语言或实现,任何能够解析它的东西都可以知道如何连接到它所指向的服务。
好的,但为什么要使用环境变量和 DSN 呢?
使用环境变量使得将安装特定的配置设置与代码本身分离变得非常容易;并且可以在不修改源文件的情况下更改应用程序的配置。模板中只有一个包含安装特定设置的文件(一个文件),并且该文件仅在环境尚未配置的情况下使用。
目的是在生产系统中配置环境而不是应用程序,而应用程序只是读取这些信息。
好吧,我同意了,我该如何使用它?
在开发场景中,将文件 Config/.env.default
复制到 Config/.env
并进行编辑。
在生产场景中 - 以您希望的方式配置环境(例如通过 web 服务器配置)并删除对 php-dotenv
的使用。
在任何情况下,都不需要也不希望修改任何 php 文件来临时或永久地配置应用程序。
是的.. 这不是我想要的。
如果您不想使用环境变量和 DSN,可以更改它 =)。
- 使用标准的
database.php
文件 - 使用标准的
email.php
文件 - 将
debug
定义为整数而不是环境变量 - 删除 php-dotenv 加载逻辑
- 还建议从存储库中删除
database.php
(以及core.php
和email.php
),因为它们需要在每次安装时进行修改
Heroku 兼容性
此应用程序模板与官方 Heroku PHP buildpack 兼容。要使用,只需配置您的构建包
heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php
heroku config:set LOG_PATH=/app/vendor/php/var/log/
heroku config:set SECURITY_SALT=SOME_ALPHANUMERIC_SALT_HERE
heroku config:set SECURITY_CIPHER_SEED=SOME_NUMERIC_SEED_HERE
要设置生产 MySQL 数据库,请在 Heroku 中设置 ClearDB MySQL 扩展
heroku addons:create cleardb
默认情况下,其配置变量将在CLEARDB_DATABASE_URL键下设置。对于我们的app-template,我们希望它在DATABASE_URL下进行配置。
old_db_url=`heroku config:get CLEARDB_DATABASE_URL`
heroku config:set DATABASE_URL="$old_db_url"
heroku config:unset CLEARDB_DATABASE_URL
我们建议在Heroku上使用Redis进行缓存。如果这样做,请记住将以下内容添加到composer.json
文件中的require
键。
"ext-redis" : "*"
您可以在Heroku中使用RedisCloud插件作为redis数据存储。
heroku addons:create rediscloud
关于依赖项的说明
FriendsOfCake鼓励使用composer,并且最好不要将composer与git子模块混合用于依赖项管理。如果您需要使用子模块,您可能会注意到git会忽略/vendor
和/Plugin
文件夹。Composer在安装供应商和插件时创建这些目录。
有几种方法可以解决这个问题
- 编辑
.gitignore
文件 - 使用
-f
参数与git add Plugin/SomePlugin -f
- 使用
app/Plugin
和app/Vendor
作为您的子模块。
包含的包
应用程序模板已经包含了一些依赖项,这些依赖项已经包含在composer文件中。这些是为帮助您快速启动而设计的。
要了解如何充分利用这些包,请阅读它们各自的readme文件。