diff --git a/.travis.yml b/.travis.yml index 83db1e0..4a0488a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: php php: - - 5.5 - - 5.6 - 7.0 - hhvm @@ -11,39 +9,40 @@ sudo: false cache: directories: - $HOME/.composer/cache/files + - .phpunit env: - - SYMFONY_VERSION=2.7.* + matrix: SYMFONY_VERSION=3.2.* + global: SYMFONY_PHPUNIT_DIR="./.phpunit" SYMFONY_PHPUNIT_REMOVE="symfony/yaml" SYMFONY_PHPUNIT_VERSION=5.7 matrix: - allow_failures: - - env: SYMFONY_VERSION=dev-master - - php: hhvm include: + - php: 7.1 + env: SYMFONY_VERSION=3.3.* DEPS=dev - php: 5.6 - env: SYMFONY_VERSION=2.7.* SYMFONY_DEPRECATIONS_HELPER=weak - - php: 5.6 - env: SYMFONY_VERSION=2.8.* - - php: 5.6 - env: SYMFONY_VERSION=3.0.* - allow_failures: - - env: SYMFONY_VERSION=2.8.* - - env: SYMFONY_VERSION=3.0.* + env: SYMFONY_VERSION=2.8.* COMPOSER_FLAGS="--prefer-lowest" + - php: 7.1 + env: SYMFONY_VERSION=3.1.* fast_finish: true before_install: - - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then echo "memory_limit = -1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi + - if [[ "$TRAVIS_PHP_VERSION" != "hhvm" ]]; then echo "memory_limit = -1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi - phpenv config-rm xdebug.ini || true - composer self-update - - composer require symfony/symfony:${SYMFONY_VERSION} --no-update + - if [ "$DEPS" = "dev" ]; then perl -pi -e 's/^}$/,"minimum-stability":"dev"}/' composer.json; fi + - if [ "$SYMFONY_VERSION" != "" ]; then composer require symfony/symfony:${SYMFONY_VERSION} --no-update; fi -install: composer update --prefer-dist +install: composer update --prefer-dist $COMPOSER_FLAGS -before_script: vendor/symfony-cmf/testing/bin/travis/phpcr_odm_doctrine_dbal.sh +before_script: + - mv vendor/phpunit ./phpunit + - composer dump-autoload + - vendor/symfony-cmf/testing/bin/travis/phpcr_odm_doctrine_dbal.sh script: - - phpunit + - vendor/bin/simple-phpunit - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then ./vendor/symfony-cmf/testing/bin/server & fi + - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then mv ./phpunit vendor/phpunit; composer dump-autoload; fi - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then ./vendor/bin/behat; fi notifications: diff --git a/Controller/ResourceController.php b/Controller/ResourceController.php index a05a92d..cf3f1f3 100644 --- a/Controller/ResourceController.php +++ b/Controller/ResourceController.php @@ -11,8 +11,8 @@ namespace Symfony\Cmf\Bundle\ResourceRestBundle\Controller; -use Puli\Repository\Api\EditableRepository; -use Puli\Repository\Api\ResourceRepository; +use Symfony\Cmf\Component\Resource\Puli\Api\ResourceRepository; +use Symfony\Cmf\Component\Resource\Puli\Api\ResourceNotFoundException; use Symfony\Cmf\Component\Resource\RepositoryRegistryInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -20,7 +20,6 @@ use Symfony\Component\Routing\Exception\RouteNotFoundException; use JMS\Serializer\SerializerInterface; use JMS\Serializer\SerializationContext; -use Puli\Repository\Api\ResourceNotFoundException; class ResourceController { @@ -88,7 +87,6 @@ public function getResourceAction($repositoryName, $path) public function patchResourceAction($repositoryName, $path, Request $request) { $repository = $this->registry->get($repositoryName); - $this->failOnNotEditable($repository, $repositoryName); $path = '/'.ltrim($path, '/'); @@ -127,7 +125,6 @@ public function patchResourceAction($repositoryName, $path, Request $request) public function deleteResourceAction($repositoryName, $path) { $repository = $this->registry->get($repositoryName); - $this->failOnNotEditable($repository, $repositoryName); $path = '/'.ltrim($path, '/'); @@ -136,13 +133,6 @@ public function deleteResourceAction($repositoryName, $path) return $this->createResponse('', Response::HTTP_NO_CONTENT); } - private function failOnNotEditable(ResourceRepository $repository, $repositoryName) - { - if (!$repository instanceof EditableRepository) { - throw new RouteNotFoundException(sprintf('Repository "%s" is not editable.', $repositoryName)); - } - } - /** * @param string $message * diff --git a/Enhancer/DescriptionEnhancer.php b/Enhancer/DescriptionEnhancer.php index 4c3be65..3328d4c 100644 --- a/Enhancer/DescriptionEnhancer.php +++ b/Enhancer/DescriptionEnhancer.php @@ -11,7 +11,7 @@ namespace Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; use Symfony\Cmf\Component\Resource\Description\DescriptionFactory; /** diff --git a/Enhancer/EnhancerInterface.php b/Enhancer/EnhancerInterface.php index 0746183..de35b45 100644 --- a/Enhancer/EnhancerInterface.php +++ b/Enhancer/EnhancerInterface.php @@ -11,7 +11,7 @@ namespace Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; /** * Enhancer classes enhance the REST response for resources. diff --git a/Enhancer/PayloadEnhancer.php b/Enhancer/PayloadEnhancer.php index ce2b027..d97ba54 100644 --- a/Enhancer/PayloadEnhancer.php +++ b/Enhancer/PayloadEnhancer.php @@ -11,7 +11,7 @@ namespace Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; /** * Serialize the payload. diff --git a/Enhancer/SonataAdminEnhancer.php b/Enhancer/SonataAdminEnhancer.php index 0db84f5..019b03b 100644 --- a/Enhancer/SonataAdminEnhancer.php +++ b/Enhancer/SonataAdminEnhancer.php @@ -14,7 +14,7 @@ use Sonata\AdminBundle\Admin\Pool; use Doctrine\Common\Util\ClassUtils; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; /** * Add links and meta-info from Sonata Admin. diff --git a/README.md b/README.md index b7e04df..8c20654 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ resources as provided by the ## Requirements -* Symfony 2.2.x +* Symfony 2.8+ * See also the `require` section of [composer.json](composer.json) ## Documentation diff --git a/Registry/PayloadAliasRegistry.php b/Registry/PayloadAliasRegistry.php index 048c76c..2c5a3d2 100644 --- a/Registry/PayloadAliasRegistry.php +++ b/Registry/PayloadAliasRegistry.php @@ -11,7 +11,7 @@ namespace Symfony\Cmf\Bundle\ResourceRestBundle\Registry; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; use Symfony\Cmf\Component\Resource\RepositoryRegistryInterface; use Symfony\Cmf\Component\Resource\Repository\Resource\CmfResource; diff --git a/Serializer/Jms/EventSubscriber/ResourceSubscriber.php b/Serializer/Jms/EventSubscriber/ResourceSubscriber.php index f0d7bb6..21b60a7 100644 --- a/Serializer/Jms/EventSubscriber/ResourceSubscriber.php +++ b/Serializer/Jms/EventSubscriber/ResourceSubscriber.php @@ -14,7 +14,7 @@ use JMS\Serializer\EventDispatcher\EventSubscriberInterface; use JMS\Serializer\EventDispatcher\Events; use JMS\Serializer\EventDispatcher\PreSerializeEvent; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; /** * Force instaces of ResourceCollection to type "ResourceCollection". diff --git a/Serializer/Jms/Handler/ResourceHandler.php b/Serializer/Jms/Handler/ResourceHandler.php index e8f7593..cd9b020 100644 --- a/Serializer/Jms/Handler/ResourceHandler.php +++ b/Serializer/Jms/Handler/ResourceHandler.php @@ -17,8 +17,7 @@ use JMS\Serializer\Context; use PHPCR\NodeInterface; use PHPCR\Util\PathHelper; -use Puli\Repository\Api\Resource\BodyResource; -use Puli\Repository\Api\Resource\PuliResource; +use Symfony\Cmf\Component\Resource\Puli\Api\PuliResource; use Symfony\Cmf\Component\Resource\RepositoryRegistryInterface; use Symfony\Cmf\Bundle\ResourceRestBundle\Registry\PayloadAliasRegistry; use Symfony\Cmf\Bundle\ResourceRestBundle\Registry\EnhancerRegistry; @@ -76,7 +75,7 @@ public function serializeResource( private function doSerializeResource(PuliResource $resource, $depth = 0) { $data = array(); - $repositoryAlias = $this->registry->getRepositoryAlias($resource->getRepository()); + $repositoryAlias = $this->registry->getRepositoryName($resource->getRepository()); $data['repository_alias'] = $repositoryAlias; $data['repository_type'] = $this->registry->getRepositoryType($resource->getRepository()); @@ -103,10 +102,6 @@ private function doSerializeResource(PuliResource $resource, $depth = 0) } $data['children'] = $children; - if ($resource instanceof BodyResource) { - $data['body'] = $resource->getBody(); - } - foreach ($enhancers as $enhancer) { $data = $enhancer->enhance($data, $resource); } diff --git a/Tests/Features/resource_api_filesystem.feature b/Tests/Features/resource_api_filesystem.feature index 689c0d0..eae12ee 100644 --- a/Tests/Features/resource_api_filesystem.feature +++ b/Tests/Features/resource_api_filesystem.feature @@ -3,35 +3,35 @@ Feature: Filesystem resource repository As a webservice user I need to be able to query the webservice - Background: - Given the test application has the following configuration: - """ - cmf_resource: - repositories: - default: - type: filesystem - base_dir: "%kernel.root_dir%/Resources/views/snippets" - """ - And there is a file named "%kernel.root_dir%/Resources/views/snippets/snippet1.html" with: - """ -