sokil / task-tracker-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]
参数 varailbes 将一些变量传递给assets,它们将用于构建到资产的路径。
配置单页面应用
此包使用 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 等。不同类别的任务可能具有不同的状态流程。Bug 可能具有状态 New、In Progres、Test、Resolved,而 Design 可能具有状态 New、Prototyping、Drawing、Markup、Resolved。这些状态组称为 Schema。类别为 Design 的任务可能与 Drawing schema 相关,而 Bug、Feature 任务可能与 Development 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