qobo/project-template

此软件包已被弃用且不再维护。未建议替代软件包。

新PHP项目的模板

v10.6.0 2019-10-14 09:00 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

关于

这是一个新PHP项目的模板。

Qobo开发,并在Qobrix中使用。

使用此模板的一些项目包括

安装

有两种方法可以安装并开始使用此项目模板。

Composer

您可以使用Composer从这个模板创建一个新项目。

composer create-project qobo/project-template example.com
cd example.com
./bin/build app:install PROJECT_NAME="My Project",PROJECT_VERSION="v1.0.0"

Git

或者,如果您想能够将项目更新到模板的最新版本,可以使用Git安装模板。

mkdir example.com
cd example.com
git init
# Pull the latest version from https://github.com/QoboLtd/project-template/releases
git pull git@github.com:QoboLtd/project-template.git vX.Y.Z
composer update
./bin/build app:install PROJECT_NAME="My Project",PROJECT_VERSION="v1.0.0"
# Add your own remote repository
git remote add origin git@github.com/USER/REPO
# Push
git push origin master

使用上述方法,您可以拥有模板开发的完整历史记录。现在您可以进行自己的开发,并在未来的任何时间点升级到最新的模板。

更新

如果您使用Git安装了项目模板,可以使用以下方法轻松升级您的应用程序到最新模板

cd exmample.com
# Make sure you are on the master branch and have a clean and up-to-date workspace
git checkout master
git pull origin master
# Create a new branch
git checkout -b project-template-update
# Pull the latest version from https://github.com/QoboLtd/project-template/releases
git pull git@github.com:QoboLtd/project-template.git vX.Y.Z
composer update
./bin/build app:update
# Check for conflicts, resolve if any, commit, and then push
git push origin project-template-update
# Create a pull request, review, and merge

用法

现在您已安装项目模板,请在开始对更改进行操作之前检查它是否工作。启动PHP网络服务器

./bin/phpserv

或运行在备用端口上

./bin/phpserv -S localhost:9000

在浏览器中导航到http://localhost:8000。您应该看到标准的 phpinfo() 页面。如果是这样,所有部分都已就位。

Screenshot

现在您可以像平常一样开发PHP项目,但具有以下优势

  • 支持 PHP内置网络服务器
  • 使用.env文件进行按环境配置,该文件被git忽略
  • 集成了强大的构建系统(Robo
  • 集成了Composer,并将vendor/文件夹添加到.gitignore
  • 集成了PHPUnit,并在tests/文件夹中添加了示例单元测试。
  • 合理的默认值以实现最佳实践 - favicon.ico、robots.txt、MySQL转储、Nginx配置、GPL等。

例如,您可以通过修改包含在build/文件夹中的Robo文件轻松自动化应用程序的构建过程。运行以下命令来检查可用的目标

./bin/build

如您所见,已经为应用程序的构建过程设置了一些占位符。默认情况下,建议您有这些

  • app:install - 用于应用程序的安装过程,
  • app:update - 用于已安装应用程序的更新过程,以及
  • app:remove - 用于应用程序删除过程和清理。

当然,您可以添加自己的,删除这些,或按任何您想要的方式更改它们。有关如何使用这些目标和传递运行时配置参数的更多信息,请参阅Robo文档。

测试

PHPUnit 和 PHP CodeSniffer

运行 PHPUnit 和 PHP CodeSniffer 最快最简单的方式是通过 composer 脚本。

./bin/composer test

另外,您还可以运行带有代码覆盖率报告的测试。

./bin/composer test-coverage

HTML 格式的代码覆盖率报告将放置在 ./build/test-coverage/ 文件夹中。

Travis CI

持续集成是一个工具,可以帮助您在代码库(提交、合并等)有任何更改时运行测试。您可以使用许多工具,但 project-template 提供了与 Travis CI 的示例集成。

查看 .travis.yml 文件,该文件描述了环境矩阵、项目安装步骤以及运行测试套件的方式。对于您的真实项目,基于 project-template,您可能希望从文件中删除示例测试。

示例

project-template 提供了一些如何编写和组织单元测试的示例。请查看 tests/ 文件夹。现在您没有任何借口不测试您的应用程序了!