lilaconcepts/lilaconceptsbestpracticebundle

这是一个简单、常见的、空的、模板化捆绑包,用于展示Symfony2.1的最佳实践捆绑包开发。此捆绑包具有正确的目录结构、编码标准、单元测试和功能测试。它使用Travis持续集成构建机器人、Composer进行依赖管理以及Twig。

dev-master 2012-11-27 13:22 UTC

This package is not auto-updated.

Last update: 2020-01-02 16:27:19 UTC


README

Build Status

这是一个简单的捆绑包,用于展示不同Symfony捆绑包开发最佳实践。此捆绑包也可以命名为入门捆绑包、空捆绑包或模板捆绑包。master分支遵循未来的Symfony 2.1版本升级说明)。

将此捆绑包作为您自己捆绑包的参考(或作弊表)。如果您忘记如何做某事,还可以查看文档和源代码中的注释。

当然,如果您计划构建自己的捆绑包,则可以使用此捆绑包作为“模板”或空/入门捆绑包。如果您希望,请分支或克隆此捆绑包。在构建新捆绑包之前,请搜索knpBundles.com。看看是否已经有类似的东西。

有关活跃的开发,请参阅变更日志

此捆绑包做什么?

链接

问题和路线图

在提供错误报告之前,请先阅读当前问题论坛。此套装未来的路线图如下。

未来功能和文档

欢迎提供帮助,请查看问题下的增强功能)。请为感兴趣的增强功能点赞。

  • 为功能测试使 /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 KopenBeleggen voor Beginners等网站的创建者。