lilaconcepts / lilaconceptsbestpracticebundle
这是一个简单、常见的、空的、模板化捆绑包,用于展示Symfony2.1的最佳实践捆绑包开发。此捆绑包具有正确的目录结构、编码标准、单元测试和功能测试。它使用Travis持续集成构建机器人、Composer进行依赖管理以及Twig。
Requires
- php: >=5.3
- symfony/framework-bundle: 2.*
- symfony/symfony: 2.*
This package is not auto-updated.
Last update: 2020-01-02 16:27:19 UTC
README
这是一个简单的捆绑包,用于展示不同Symfony捆绑包开发最佳实践。此捆绑包也可以命名为入门捆绑包、空捆绑包或模板捆绑包。master分支遵循未来的Symfony 2.1版本(升级说明)。
将此捆绑包作为您自己捆绑包的参考(或作弊表)。如果您忘记如何做某事,还可以查看文档和源代码中的注释。
当然,如果您计划构建自己的捆绑包,则可以使用此捆绑包作为“模板”或空/入门捆绑包。如果您希望,请分支或克隆此捆绑包。在构建新捆绑包之前,请搜索knpBundles.com。看看是否已经有类似的东西。
有关活跃的开发,请参阅变更日志。
此捆绑包做什么?
- 使用Composer进行依赖管理
- 使用Travis CI作为持续集成的构建机器人
- 使用fabpot/PHP-CS-Fixer遵守(并包含)编码标准
- 提供单元测试(包括功能测试和代码覆盖率)
- 为您的代码生成phpDocumentor2文档
- 采用Symfony建议的目录树结构
- 提供基于reStructuredText的文档示例
- 使用Twig进行模板化
- 一个定制的.gitignore文件
- 托管在Github上(具有Travis和Composer的服务钩子)
链接
- 在Packagist.org上的最佳实践捆绑包
- 在KnpBundles.com上的最佳实践套装
- 在Travis CI上的最佳实践套装
- 最佳实践论坛
- 待办:包含单元测试代码覆盖率链接
- 待办:包含phpDocumentor2文档链接
问题和路线图
在提供错误报告之前,请先阅读当前问题和论坛。此套装未来的路线图如下。
未来功能和文档
欢迎提供帮助,请查看问题下的增强功能)。请为感兴趣的增强功能点赞。
- 为功能测试使 /best-practice/ 可用
- 通过命令克隆套装,作为生成:套装的替代方法
- 多语言/区域/国际化示例
- 提供教程/博客文章(yaml,使用Varnish、Vagrant的缓存等)
- 更多关于缓存管理的详细信息
- 更多日志(通过monolog)
- 更多关于路由/路径、assetic和表单的详细信息
- 自定义异常
- 添加边边包含(esi)、会话、验证器和重定向测试
- 添加如xml和json测试的MIME类型测试
- 使用phantomjs.org进行JavaScript测试?
- 对象关系映射(ORM):Propel/Doctrine实体集成?
- HTML5模板?
- 使此套装也能与ZF2一起工作?
要求
- Symfony2.1(PHP 5.3.3及以上,包括Composer)
- Twig
安装
将以下行添加到您的composer.json文件中。
//composer.json { //... "require": { //... "LilaConcepts/LilaConceptsBestPracticeBundle" : "dev-master" } //... }
如果您还没有这样做,请获取Composer(确保它是最新的)。
curl -s http://getcomposer.org/installer | php
然后安装新的套装
php composer.phar update LilaConcepts/LilaConceptsBestPracticeBundle
配置
最后一步是将套装添加到您的AppKernel.php中。
<?php // in AppKernel::registerBundles() $bundles = array( // Dependencies new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), ); // Optionally place it in the dev and test-environments only if (in_array($this->getEnvironment(), array('dev', 'test'))) { // ... $bundles[] = new LilaConcepts\Bundle\LilaConceptsBestPracticeBundle\LilaConceptsBestPracticeBundle() }
代码标准修复器
可选地,您可以让PHP-CS-fixer在每次提交时检查代码标准。从您的套装项目根目录运行以下代码。警告:检查您是否已经有一个现有的pre-commit钩子,以免覆盖任何内容。
cp hooks/pre-commit-cs-fixer .git/hooks/pre-commit chmod a+x .git/hooks/pre-commit
该钩子将确保从fabpot/PHP-CS-Fixer的"php-cs-fixer.phar"在您的项目根目录中可用。它检查套装中的所有代码。如果修复器发现错误,它将中止提交,并为您提供一个可复制粘贴的命令来修复它。
输出示例
afjlambert@iMac:~/Sites/MyBundle (master)$ git commit -a
Coding standards are not correct, cancelling your commit.
1) LilaConceptsBestPracticeBundle.php (extra_empty_lines)
If you want to fix them run:
php /Users/afjlambert/Sites/MyBundle/php-cs-fixer.phar fix /Users/afjlambert/Sites/MyBundle --verbose
phpDocumentor2
如果您想生成关于您的模块的phpDocumentor2文档,请运行以下命令。
mkdir -p vendor/phpdocumentor/phpdocumentor cd vendor/phpdocumentor/phpdocumentor git clone https://github.com/phpDocumentor/phpDocumentor2.git ./ ../../../composer.phar install cd -
然后生成文档
php vendor/phpdocumentor/phpdocumentor/bin/phpdoc.php --target Resources/doc/generated/phpDocumentor
现在通过您的查找器/浏览器打开Resources/doc/generated/phpDocumentor/index.html。
(单元)测试套装
如果您想单元测试套装,只需在您的套装根目录中输入以下内容
phpunit
如果您想获取您的代码的测试覆盖率
phpunit --coverage-html Resources/doc/generated/code-coverage
现在通过您的文件浏览器或浏览器打开 Resources/doc/generated/code-coverage/index.html。
如果您想手动测试包,请将浏览器指向 https:///app_dev.php/best-practice/(开发中,目前还不能使用!)
独立安装
如果您想下载和单元测试代码,您不需要一个工作的Symfony项目。只需运行以下命令。
git clone https://github.com/LilaConcepts/LilaConceptsBestPracticeBundle.git cd LilaConceptsBestPracticeBundle curl -s http://getcomposer.org/installer | php php composer.phar install
现在您应该能够 单元测试这个包了。
为个人使用Fork/克隆包
点击 https://github.com/LilaConcepts/LilaConceptsBestPracticeBundle 上的Fork按钮。然后点击管理并重命名包。请遵守命名约定,使用类似'myfeature-bundle'或'myadmin-bundle'的名称。您已经完成了GitHub部分,现在是时候将仓库克隆到一个临时文件夹中并进行一些修改了。设置您自己的GitHub URL和Bundle/公司名称。
mkdir temp/ && cd temp/ BUNDLE=MainBundle COMPANY=Acme GITHUBURL=https://github.com/[your account name]/[your bundle name]-bundle.git
现在运行以下代码
SHORTBUNDLE=`echo ${BUNDLE} | sed 's/Bundle//'` COMPLETENAME=${COMPANY}${SHORTBUNDLE} LOGICALNAME=`echo ${COMPANY}_${SHORTBUNDLE} | tr '[A-Z]' '[a-z]'` DIRNAME=`echo ${SHORTBUNDLE} | tr '[A-Z]' '[a-z]'`-bundle git clone ${GITHUBURL} ${BUNDLE} cd ${BUNDLE} FILES=`find . -regex '.*/*.[php|yml]' -type f` sed -i '' -e 's/LilaConcepts\\Bundle\\LilaConceptsBestPracticeBundle/'${COMPANY}'\\Bundle\\'${COMPANY}${BUNDLE}'/g' ${FILES} sed -i '' -e 's/lilaconcepts_bestpractice/'${LOGICALNAME}'/g' ${FILES} sed -i '' -e 's/LilaConceptsBestPracticeExtension/'${COMPLETENAME}Extension'/g' ${FILES} sed -i '' -e 's/LilaConceptsBestPracticeBundle/'${COMPLETENAME}Bundle'/g' ${FILES} composer.json sed -i '' -e 's/LilaConcepts/'${COMPANY}'/g' composer.json mv ./DependencyInjection/LilaConceptsBestPracticeExtension.php ./DependencyInjection/${COMPLETENAME}Extension.php mv ./LilaConceptsBestPracticeBundle.php ./${COMPLETENAME}Bundle.php echo -e "\n\nDone, please inspect the changes and push it back to github:\n\n git push\n\nYou will need this later for your AppKernel.php:\n\n new ${COMPANY}\Bundle\\${BUNDLE}\\${COMPANY}${BUNDLE}()\n"
可选
curl -s http://getcomposer.org/installer | php
php composer.phar install
现在您可以通过 测试您的包。在推送到GitHub之前,请务必更新以下文件
- composer.json
- README.md
- LICENCE
- CONTRIBUTORS.md
- CHANGELOG的
- Resource/doc/*
推送到GitHub
git add . git commit -a -m "Initial checkin" git push
前往 Packagist 并提交您的包。可选:设置一个GitHub服务钩子,以便Packagist可以自动接收通知。
现在按照这些说明 安装您的包,当然使用您自己的Packagist名称。您可以删除我们创建的temp/目录,并在vendor/.../Bundle/YourBundle目录内工作。
文档
有关更多信息,请参阅 Resources/doc/index.rst。请自由修复错别字。
贡献
首先,非常感谢所有 贡献者和给我们灵感的所有人。如果您想帮助使最佳实践包变得更好,或者您发现了任何错误,请给我发私信或在 问题 下提供错误报告。更好的是,您可以发送一个pull-request。如果您有任何进一步的问题,请 前往论坛。
许可
此包由Lila Concepts B.V.在MIT许可下发布,有关更多信息,请参阅 LICENCE 文件。Lila Concepts B.V.是一家荷兰组织,也是Aandelen Kopen和Beleggen voor Beginners等网站的创建者。