macedigital / silex-jms-serializer
使用JMS Serializer在silex应用程序中(反)序列化对象图
v1.0.0
2013-08-30 14:42 UTC
Requires
- php: >=5.3.10
- jms/serializer: >=0.12,<=0.13.x-dev
- silex/silex: 1.*
Requires (Dev)
- phpunit/phpunit: 3.7.*
Suggests
- symfony/yaml: Required if you'd like to deserialize data from YAML format.
This package is not auto-updated.
Last update: 2024-09-14 13:39:04 UTC
README
此Silex服务提供程序注册了JMS-Serializer,用于任何复杂度的对象图的(反)序列化。
安装
安装此服务提供程序的首选方式是通过composer
composer.phar require macedigital/jms-serializer-provider
示例
由于这是Silex SerializerServiceProvider的替代品,因此以下来自文档的略微修改的示例将有效:
<?php $loader = require_once __DIR__.'/../vendor/autoload.php'; // If you're are using class annotations Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($loader, 'loadClass')); $app = new Silex\Application(); // optional: whether to stat cached files or not, defaults to $app['debug'] $app['serializer.debug'] = true; // optional: defaults to system's default temporary folder $app['serializer.cache_dir'] = '/some/writable/folder'; $app->register(new Macedigital\Silex\Provider\SerializerProvider); // only accept content types supported by the serializer via the assert method. $app->get("/pages/{id}.{_format}", function ($id) use ($app) { // assume a page_repository service exists that returns a Page object $page = $app['page_repository']->find($id); $format = $app['request']->getRequestFormat(); if (!$page instanceof Page) { $app->abort("No page found for id: $id"); } return new Response($app['serializer']->serialize($page, $format), 200, array( "Content-Type" => $app['request']->getMimeType($format) )); })->assert("_format", "xml|json|yml") ->assert("id", "\d+"); $app->run();