sokil / task-stock-bundle
0.2.5
2016-11-29 22:39 UTC
Requires
- php: ^5.6 || ^7.0
- sokil/file-storage-bundle: ^0.1.7
- sokil/frontend-bundle: ^0.12.3
- sokil/notification-bundle: ^0.3.2
- sokil/php-diff: ~0.3
- sokil/php-state: ^0.5.1
- sokil/php-symfony-validator-converter: ^1.0.2
- sokil/php-upload: ^0.6.4
- sokil/user-bundle: ^0.2.19
Requires (Dev)
- phpunit/phpunit: 5.4.*
- satooshi/php-coveralls: 0.7.*
README
任务跟踪器包
安装
将依赖项添加到composer
composer.phar reequire sokil/task-stock-bundle
配置
此包依赖于其他包,这些包也需要配置。如果您尚未使用它们,请配置它们
基本包配置
- 将包添加到AppKernel
<?php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new Sokil\TaskStockBundle\TaskStockBundle(), ); } }
- 在
./app/config/parameters.yml.dist
中定义所需的参数
# email server parameters notification.from_email.address: ~ notification.from_email.sender_name: ~
- 在文件
./app/config/security.yml
中定义角色层次结构中的角色
security: role_hierarchy: ROLE_TASK_VIEWER: [ROLE_USER] ROLE_TASK_MANAGER: [ROLE_TASK_VIEWER] ROLE_TASK_PROJECT_VIEWER: [ROLE_USER] ROLE_TASK_PROJECT_MANAGER: [ROLE_TASK_PROJECT_VIEWER]
- 在
./app/console/routing.yml
中注册路由
task_stock: resource: "@TaskStockBundle/Resources/config/routing.yml"
- 此包使用assetic,因此需要在assetic配置中注册它并进行一些配置
assetic: bundles: - TaskStockBundle variables: locale: [uk, en, de. fr] env: [dev,prod]
参数 variables
将一些变量传递到资产中,这些变量将用于构建资产路径。
配置SPA
此包使用 FrontendBundle 来构建前端,因此配置SPA,并添加一些依赖项到它
{% import "@FrontendBundle/Resources/views/macro.html.twig" as frontend %} {% import "@TaskStockBundle/Resources/views/Spa/macro.html.twig" as taskSpa %} {{ frontend.commonCssResources() }} {{ frontend.commonJsResources() }} {{ frontend.spaJsResources() }} {{ taskSpa.cssResources() }} {{ taskSpa.jsResources() }} <script type="text/javascript"> (function() { // app options var options = {{ applicationData|json_encode|raw }}; // router options.router = new Marionette.AppRouter(); var taskStockRouter = new TaskStockRouter(); options.router.processAppRoutes(taskStockRouter, taskStockRouter.routes); // container options.container = new Container(_.extend( {}, TaskStockServiceDefinition )); // requirejs options.requireJs = [ TaskStockRequireJsConfig ]; // start app window.app = new Application(options); window.app.start(); })(); </script>
配置文件存储
此包使用 FileStorageBundle 来处理文件上传。
您需要配置一些文件系统来处理上传,例如 task_stock.attachments
。将其添加到您的 ./app/config/config.yml
knp_gaufrette: factories: - "%kernel.root_dir%/../vendor/sokil/file-storage-bundle/src/Resources/config/adapter_factories.xml" adapters: task_stock.attachments: internal: pathStrategy: name: chunkpath options: chunksNumber: 2 chunkSize: 3 preserveExtension: false baseDir: "%kernel.root_dir%/files/task_attach" filesystems: task_stock.attachments: adapter: task_stock.attachments
然后将此文件系统添加到包的配置中,在 ./app/config/config.yml
task_stock: attachments_filesystem: "task_stock.attachments"
配置任务状态
任务属于某些类别:例如 Bug
、Enhancement
、Feature
、Design
等。不同类别的任务可能有不同的状态流程。错误可能的状态有 New
、In Progress
、Test
、Resolved
,而 Design
可能的状态有 New
、Prototyping
、Drawing
、Markup
、Resolved
。这些状态组合称为 Schema
。类别为 Design
的任务可能与 Drawing schema
相关,而类别为 Bug
、Feature
的任务可能与 Development
schema 相关。
将schema配置添加到您的 ./app/config/config.yaml
taskStock: stateConfig: - id: 0 name: Development states: new: label: task_status_new initial: true transitions: to_in_progress: resultingState: in_progress label: task_transiotion_open icon: glyphicon glyphicon-play to_rejected: resultingState: rejected label: task_transiotion_reject icon: glyphicon glyphicon-ban-circle in_progress: label: task_status_in_progress transitions: to_resolved: resultingState: resolved label: task_transiotion_resolve icon: glyphicon glyphicon-ok to_rejected: resultingState: rejected label: task_transiotion_reject icon: glyphicon glyphicon-ban-circle rejected: label: task_status_rejected transitions: to_in_progress: resultingState: in_progress label: task_transiotion_reopen icon: glyphicon glyphicon-repeat resolved: label: task_status_resolved transitions: to_in_progress: resultingState: in_progress label: task_transiotion_reopen icon: glyphicon glyphicon-repeat