friendsofcake/app-template

一个空的 CakePHP 2.5 应用程序

1.7.0 2015-12-30 07:21 UTC

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.phpemail.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/Pluginapp/Vendor作为您的子模块。

包含的包

应用程序模板已经包含了一些依赖项,这些依赖项已经包含在composer文件中。这些是为帮助您快速启动而设计的。

要了解如何充分利用这些包,请阅读它们各自的readme文件。