alterway / rest-hal-bundle
使用 Symfony2 管理HAL Rest API http://stateless.co/hal_specification.html
v0.0.2
2013-12-27 15:07 UTC
Requires
- php: ~5.3
- nocarrier/hal: ~0.9.4
- sensio/framework-extra-bundle: ~2.2
- symfony/symfony: ~2.2
Requires (Dev)
- behat/behat: ~2.5
- behat/gherkin: ~2.3
- behat/mink-browserkit-driver: ~1.1
- behat/mink-extension: ~1.2
- behat/mink-sahi-driver: ~1.1
- behat/symfony2-extension: ~1.1
- kriswallsmith/buzz: ~0.5
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 06:11:01 UTC
README
# RestHalBundle
用于管理 Hal API 的 Symfony2 扩展包。
## 安装
编辑你的 composer.json
"require": { "alterway/rest-hal-bundle" : "master" }
然后运行 Composer
php composer.phar update alterway/rest-hal-bundle
在 autoload.php
文件的末尾添加以下行
Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
在 AppKernel.php
中启用你的扩展包
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Alterway\Bundle\RestHalBundle\AwRestHalBundle(), ); }
使用方法
资源
资源是一个 PHP 类,代表应用程序中元素的信息。
例如
// src/Alterway/DemoBundle/ApiResource/UserResource.php namespace Alterway\DemoBundle\ApiResource; use Alterway\Bundle\RestHalBundle\ApiResource\Resource; class UserResource extends Resource { public function __construct(RouterInterface $router, User $user) { parent::__construct($router); $this->user = $user; } protected function prepare() { $this->addLink('next', '/users?page=2'); $this->addLink('search', '/users?id={user_id}'); } protected function generateUri() { return $this->router->generate('demo.user', array('id' => 1)); } }
控制器
使用注解
记得启用注解
sensio_framework_extra:
router: { annotations: true }
request: { converters: true }
view: { annotations: true }
cache: { annotations: true }
// some controller or yours use Alterway\DemoBundle\ApiResource\UserResource; /** * @Hal(code="200") */ public function userWithAnnotateAction(Request $request) { $user = new User; return new UserResource($this->get('router'), $user); }
不使用注解
// some controller or yours use Alterway\Bundle\HalRestBundle\Response\HalResponse; use Alterway\DemoBundle\ApiResource\UserResource; public function userWithoutAnnotateAction(Request $request) { $user = new User; $resource = new UserResource($this->get('router'), $user); return new HalResponse($resource, 200); }
## 贡献
安装开发依赖
php composer.phar update
运行 Behat
./vendor/bin/behat @AwRestHalBundle
版权
版权 (c) 2013 La Ruche Qui Dit Oui!。有关详细信息,请参阅 LICENSE。
贡献者
- Jean-François Lépine (Halleck45)
- Benoît Merlet (trompette)
- Antoine Lévêque (gh0stonio)