Merge pull request #1524 from wallabag/sf2.8

Upgrade to Symfony 3.0
This commit is contained in:
Nicolas Lœuillet 2016-01-15 15:38:31 +01:00
commit 1930c19d82
83 changed files with 1293 additions and 682 deletions

23
.gitignore vendored
View file

@ -1,25 +1,20 @@
# Cache and logs (Symfony2)
/app/cache/*
/app/logs/*
!app/cache/.gitkeep
!app/logs/.gitkeep
# Cache and logs (Symfony3)
# Cache, logs & sessions
/var/*
!/var/cache
/var/cache/*
/var/logs/*
!var/cache/.gitkeep
!/var/logs
/var/logs/*
!var/logs/.gitkeep
!/var/sessions
/var/sessions/*
!var/sessions/.gitkeep
!var/SymfonyRequirements.php
# Parameters
/app/config/parameters.yml
/app/config/parameters.ini
# Managed by Composer
/app/bootstrap.php.cache
/var/bootstrap.php.cache
/bin/*
!bin/console
!bin/symfony_requirements
/vendor/
# Assets and user uploads

View file

@ -43,17 +43,8 @@ before_script:
- if [ -n "$GH_TOKEN" ]; then composer config github-oauth.github.com ${GH_TOKEN}; fi;
# disable xdebug since we don't use code-coverage for now
- if [[ $TRAVIS_PHP_VERSION != '5.6' && $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then phpenv config-rm xdebug.ini; fi
# build coverage only on one build, to speed up results feedbacks
# - if [[ "$TRAVIS_PHP_VERSION" = "5.6" ]]; then PHPUNIT_FLAGS="--coverage-clover=coverage.clover"; else PHPUNIT_FLAGS=""; fi;
- if [[ "$DB" = "pgsql" ]]; then psql -c 'create database wallabag;' -U postgres; fi;
script:
- ant prepare-$DB
- SYMFONY_DEPRECATIONS_HELPER=weak bin/phpunit -v
# after_script:
# - |
# if [ $TRAVIS_PHP_VERSION = '5.6' ]; then
# wget https://scrutinizer-ci.com/ocular.phar
# php ocular.phar code-coverage:upload --format=php-clover coverage.clover
# fi
- bin/phpunit -v

View file

@ -1,19 +1,19 @@
Copyright (c) 2013-2015 Nicolas Lœuillet
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyright (c) 2013-2016 Nicolas Lœuillet
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -2,5 +2,4 @@ wallabag is mainly developed by [Nicolas Lœuillet](https://github.com/nicosomb)
Thank you so much to [@tcitworld](https://github.com/tcitworld) and [@j0k3r](https://github.com/j0k3r).
Thank you [to others contributors](https://github.com/wallabag/wallabag/graphs/contributors
).
Thank you [to others contributors](https://github.com/wallabag/wallabag/graphs/contributors).

View file

@ -16,12 +16,11 @@ If you don't have it yet, please [install composer](https://getcomposer.org/down
```
composer create-project wallabag/wallabag wallabag 2.0.0-alpha.1
cd wallabag
php app/console wallabag:install
php app/console server:run
php bin/console wallabag:install
php bin/console server:run
```
## License
Copyright © 2013-2015 Nicolas Lœuillet <nicolas@loeuillet.org>
Copyright © 2013-2016 Nicolas Lœuillet <nicolas@loeuillet.org>
This work is free. You can redistribute it and/or modify it under the
terms of the MIT License. See the COPYING file for more details.

View file

@ -1,7 +1,5 @@
<?php
require_once __DIR__.'/AppKernel.php';
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
class AppCache extends HttpCache

View file

@ -7,7 +7,7 @@ class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
$bundles = [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
@ -33,9 +33,9 @@ class AppKernel extends Kernel
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
new Wallabag\ImportBundle\WallabagImportBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
);
];
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
@ -46,8 +46,23 @@ class AppKernel extends Kernel
return $bundles;
}
public function getRootDir()
{
return __DIR__;
}
public function getCacheDir()
{
return dirname(__DIR__).'/var/cache/'.$this->getEnvironment();
}
public function getLogDir()
{
return dirname(__DIR__).'/var/logs';
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
$loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml');
}
}

View file

@ -8,6 +8,6 @@ use Composer\Autoload\ClassLoader;
*/
$loader = require __DIR__.'/../vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
AnnotationRegistry::registerLoader([$loader, 'loadClass']);
return $loader;

View file

@ -21,9 +21,11 @@ framework:
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
fragments: ~
http_method_override: true
assets: ~
wallabag_core:
languages:
@ -59,9 +61,8 @@ twig:
warning_message: %warning_message%
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
flattr_url: "https://flattr.com/thing/1265480"
form:
resources:
- LexikFormFilterBundle:Form:form_div_layout.html.twig
form_themes:
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
# Assetic Configuration
assetic:
@ -171,14 +172,8 @@ liip_theme:
autodetect_theme: wallabag_core.helper.detect_active_theme
path_patterns:
# app_resource:
# - %%app_path%%/views/themes/%%current_theme%%/%%template%%
# - %%app_path%%/views/%%template%%
bundle_resource:
- %%bundle_path%%/Resources/views/themes/%%current_theme%%/%%template%%
# bundle_resource_dir:
# - %%dir%%/views/themes/%%current_theme%%/%%bundle_name%%/%%template%%
# - %%dir%%/views/%%bundle_name%%/%%override_path%%
fos_user:
db_driver: orm

View file

@ -17,13 +17,14 @@ monolog:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: [!event]
console:
type: console
bubble: false
verbosity_levels:
VERBOSITY_VERBOSE: INFO
VERBOSITY_VERY_VERBOSE: DEBUG
channels: ["!doctrine"]
channels: [!event, !doctrine]
console_very_verbose:
type: console
bubble: false
@ -31,15 +32,7 @@ monolog:
VERBOSITY_VERBOSE: NOTICE
VERBOSITY_VERY_VERBOSE: NOTICE
VERBOSITY_DEBUG: DEBUG
channels: ["doctrine"]
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration
#firephp:
# type: firephp
# level: info
#chromephp:
# type: chromephp
# level: info
channels: [doctrine]
assetic:
use_controller: true

View file

@ -8,7 +8,7 @@ wallabag_api:
prefix: /
app:
resource: @WallabagCoreBundle/Controller/
resource: "@WallabagCoreBundle/Controller/"
type: annotation
doc-api:

View file

@ -6,13 +6,9 @@ _profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_errors:
resource: "@TwigBundle/Resources/config/routing/errors.xml"
prefix: /_error
_main:
resource: routing.yml
resource: routing.yml

View file

@ -15,6 +15,11 @@ security:
# the main part of the security, where you can set up firewalls
# for specific sections of your app
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
oauth_token:
pattern: ^/oauth/v2/token
security: false
@ -33,11 +38,11 @@ security:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager
csrf_token_generator: security.csrf.token_manager
anonymous: true
remember_me:
key: "%secret%"
secret: "%secret%"
lifetime: 31536000
path: /
domain: ~

View file

@ -1,22 +1,24 @@
#!/usr/bin/env php
<?php
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
set_time_limit(0);
require_once __DIR__.'/bootstrap.php.cache';
require_once __DIR__.'/AppKernel.php';
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
/**
* @var Composer\Autoload\ClassLoader $loader
*/
$loader = require __DIR__.'/../app/autoload.php';
$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod';
if ($debug) {
Debug::enable();

1
bin/doctrine Symbolic link
View file

@ -0,0 +1 @@
../vendor/doctrine/orm/bin/doctrine

1
bin/doctrine-dbal Symbolic link
View file

@ -0,0 +1 @@
../vendor/doctrine/dbal/bin/doctrine-dbal

1
bin/doctrine-migrations Symbolic link
View file

@ -0,0 +1 @@
../vendor/doctrine/migrations/bin/doctrine-migrations

1
bin/doctrine.php Symbolic link
View file

@ -0,0 +1 @@
../vendor/doctrine/orm/bin/doctrine.php

Binary file not shown.

1
bin/security-checker Symbolic link
View file

@ -0,0 +1 @@
../vendor/sensiolabs/security-checker/security-checker

9
app/check.php → bin/symfony_requirements Normal file → Executable file
View file

@ -1,6 +1,7 @@
#!/usr/bin/env php
<?php
require_once dirname(__FILE__).'/SymfonyRequirements.php';
require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';
$lineSize = 70;
$symfonyRequirements = new SymfonyRequirements();
@ -80,7 +81,7 @@ function get_error_message(Requirement $requirement, $lineSize)
return;
}
$errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
$errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
$errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL;
return $errorMessage;
@ -121,8 +122,8 @@ function echo_block($style, $title, $message)
echo PHP_EOL.PHP_EOL;
echo_style($style, str_repeat(' ', $width).PHP_EOL);
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_repeat(' ', $width).PHP_EOL);
}

View file

@ -6,7 +6,7 @@
<target name="prepare-pgsql" depends="clean,composer,db_pgsql,prepare"/>
<target name="clean" description="Cleanup build artifacts">
<delete dir="${basedir}/app/cache"/>
<delete dir="${basedir}/var/cache"/>
</target>
<target name="composer" description="Install deps using Composer">
@ -19,28 +19,28 @@
<target name="prepare" description="Prepare for build">
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:drop"/>
<arg value="--force"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:schema:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:fixtures:load"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
@ -55,7 +55,7 @@
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
@ -69,7 +69,7 @@
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
@ -83,7 +83,7 @@
</exec>
<exec executable="php">
<arg value="${basedir}/app/console"/>
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>

View file

@ -28,35 +28,36 @@
"issues": "https://github.com/wallabag/wallabag/issues"
},
"require": {
"php": ">=5.5.0",
"symfony/symfony": "~2.7.0",
"doctrine/orm": "~2.3",
"doctrine/doctrine-bundle": "1.5.2",
"php": ">=5.5.9",
"symfony/symfony": "3.0.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~3.0.12",
"sensio/framework-extra-bundle": "~3.0",
"incenteev/composer-parameter-handler": "~2.0",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^2.8",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"nelmio/cors-bundle": "~1.4.0",
"friendsofsymfony/rest-bundle": "~1.4",
"jms/serializer-bundle": "~0.13",
"jms/serializer-bundle": "~1.0",
"nelmio/api-doc-bundle": "~2.7",
"ezyang/htmlpurifier": "~4.6",
"mgargano/simplehtmldom": "~1.5",
"tecnickcom/tcpdf": "~6.2",
"simplepie/simplepie": "~1.3.1",
"willdurand/hateoas-bundle": "~0.5.0",
"willdurand/hateoas-bundle": "~1.0",
"htmlawed/htmlawed": "~1.1.19",
"liip/theme-bundle": "~1.1.3",
"liip/theme-bundle": "~1.1",
"pagerfanta/pagerfanta": "~1.0.3",
"lexik/form-filter-bundle": "~4.0",
"lexik/form-filter-bundle": "~5.0",
"j0k3r/graby": "~1.0",
"friendsofsymfony/user-bundle": "dev-master",
"friendsofsymfony/oauth-server-bundle": "^1.4@dev",
"friendsofsymfony/oauth-server-bundle": "^1.5@dev",
"stof/doctrine-extensions-bundle": "^1.2@dev",
"scheb/two-factor-bundle": "~1.4.0",
"scheb/two-factor-bundle": "~2.0",
"grandt/phpepub": "~4.0",
"wallabag/php-mobi": "~1.0.0",
"kphoen/rulerz-bundle": "~0.10",
@ -64,39 +65,36 @@
"doctrine/doctrine-migrations-bundle": "^1.0"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2.0",
"sensio/generator-bundle": "~2.5",
"doctrine/doctrine-fixtures-bundle": "~2.2",
"sensio/generator-bundle": "^3.0",
"phpunit/phpunit": "~4.4",
"symfony/phpunit-bridge": "~2.7.0"
"symfony/phpunit-bridge": "^2.7"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/wallabag/phpMobi"
}
],
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"build-parameters": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
],
"post-cmd": [
"@build-parameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-install-cmd": [
"@post-cmd"
],
"post-update-cmd": [
"@post-cmd"
]
},
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
"symfony-web-dir": "web",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml",
@ -109,7 +107,8 @@
}
},
"autoload": {
"psr-0": { "": "src/" }
"psr-4": { "": "src/" },
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
"config": {
"bin-dir": "bin"

1249
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -9,32 +9,27 @@
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="app/bootstrap.php.cache"
bootstrap="app/autoload.php"
>
<testsuites>
<testsuite name="wallabag Test Suite">
<directory>./src/Wallabag/*Bundle/Tests</directory>
<directory>src/Wallabag/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<php>
<server name="KERNEL_DIR" value="./app/" />
<!--
Avoid tests to fail because of deprecated stuff
see: http://symfony.com/doc/current/cookbook/upgrade/major_version.html#deprecations-in-phpunit
-->
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak" />
<server name="KERNEL_DIR" value="app/" />
</php>
<filter>
<whitelist>
<directory>./src</directory>
<directory>src</directory>
<exclude>
<directory>./vendor</directory>
<directory>./src/Wallabag/*Bundle/Resources</directory>
<directory>./src/Wallabag/*Bundle/Tests</directory>
<directory>./src/Wallabag/*Bundle/DataFixtures</directory>
<directory>vendor</directory>
<directory>src/Wallabag/*Bundle/Resources</directory>
<directory>src/Wallabag/*Bundle/Tests</directory>
<directory>src/Wallabag/*Bundle/DataFixtures</directory>
</exclude>
</whitelist>
</filter>

View file

@ -3,13 +3,14 @@
namespace Wallabag\ApiBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
use Hateoas\Configuration\Route;
use Hateoas\Representation\Factory\PagerfantaFactory;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Hateoas\Configuration\Route;
use Hateoas\Representation\Factory\PagerfantaFactory;
class WallabagRestController extends FOSRestController
{
@ -84,7 +85,7 @@ class WallabagRestController extends FOSRestController
$pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
$paginatedCollection = $pagerfantaFactory->createRepresentation(
$pager,
new Route('api_get_entries', [], $absolute = true)
new Route('api_get_entries', [], UrlGeneratorInterface::ABSOLUTE_URL)
);
$json = $this->get('serializer')->serialize($paginatedCollection, 'json');

View file

@ -2,8 +2,8 @@
namespace Wallabag\ApiBundle\Entity;
use FOS\OAuthServerBundle\Entity\AccessToken as BaseAccessToken;
use Doctrine\ORM\Mapping as ORM;
use FOS\OAuthServerBundle\Entity\AccessToken as BaseAccessToken;
/**
* @ORM\Table("oauth2_access_tokens")

View file

@ -2,8 +2,8 @@
namespace Wallabag\ApiBundle\Entity;
use FOS\OAuthServerBundle\Entity\AuthCode as BaseAuthCode;
use Doctrine\ORM\Mapping as ORM;
use FOS\OAuthServerBundle\Entity\AuthCode as BaseAuthCode;
/**
* @ORM\Table("oauth2_auth_codes")

View file

@ -2,8 +2,8 @@
namespace Wallabag\ApiBundle\Entity;
use FOS\OAuthServerBundle\Entity\Client as BaseClient;
use Doctrine\ORM\Mapping as ORM;
use FOS\OAuthServerBundle\Entity\Client as BaseClient;
/**
* @ORM\Table("oauth2_clients")

View file

@ -2,8 +2,8 @@
namespace Wallabag\ApiBundle\Entity;
use FOS\OAuthServerBundle\Entity\RefreshToken as BaseRefreshToken;
use Doctrine\ORM\Mapping as ORM;
use FOS\OAuthServerBundle\Entity\RefreshToken as BaseRefreshToken;
/**
* @ORM\Table("oauth2_refresh_tokens")

View file

@ -3,14 +3,14 @@
namespace Wallabag\CoreBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Output\NullOutput;
use Symfony\Component\Console\Question\Question;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Question\Question;
use Wallabag\CoreBundle\Entity\Config;
class InstallCommand extends ContainerAwareCommand
@ -55,7 +55,7 @@ class InstallCommand extends ContainerAwareCommand
;
$output->writeln('<info>Wallabag has been successfully installed.</info>');
$output->writeln('<comment>Just execute `php app/console server:run` for using wallabag: http://localhost:8000</comment>');
$output->writeln('<comment>Just execute `php bin/console server:run` for using wallabag: http://localhost:8000</comment>');
}
protected function checkRequirements()

View file

@ -4,17 +4,18 @@ namespace Wallabag\CoreBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\TaggingRule;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Form\Type\ConfigType;
use Wallabag\CoreBundle\Form\Type\ChangePasswordType;
use Wallabag\CoreBundle\Form\Type\UserInformationType;
use Wallabag\CoreBundle\Form\Type\TaggingRuleType;
use Wallabag\CoreBundle\Form\Type\NewUserType;
use Wallabag\CoreBundle\Form\Type\RssType;
use Wallabag\CoreBundle\Form\Type\TaggingRuleType;
use Wallabag\CoreBundle\Form\Type\UserInformationType;
use Wallabag\CoreBundle\Tools\Utils;
use Wallabag\UserBundle\Entity\User;
class ConfigController extends Controller
{
@ -31,7 +32,7 @@ class ConfigController extends Controller
$user = $this->getUser();
// handle basic config detail (this form is defined as a service)
$configForm = $this->createForm('config', $config, array('action' => $this->generateUrl('config')));
$configForm = $this->createForm(ConfigType::class, $config, array('action' => $this->generateUrl('config')));
$configForm->handleRequest($request);
if ($configForm->isValid()) {
@ -51,7 +52,7 @@ class ConfigController extends Controller
}
// handle changing password
$pwdForm = $this->createForm(new ChangePasswordType(), null, array('action' => $this->generateUrl('config').'#set4'));
$pwdForm = $this->createForm(ChangePasswordType::class, null, array('action' => $this->generateUrl('config').'#set4'));
$pwdForm->handleRequest($request);
if ($pwdForm->isValid()) {
@ -67,7 +68,7 @@ class ConfigController extends Controller
}
// handle changing user information
$userForm = $this->createForm(new UserInformationType(), $user, array(
$userForm = $this->createForm(UserInformationType::class, $user, array(
'validation_groups' => array('Profile'),
'action' => $this->generateUrl('config').'#set3',
));
@ -85,7 +86,7 @@ class ConfigController extends Controller
}
// handle rss information
$rssForm = $this->createForm(new RssType(), $config, array('action' => $this->generateUrl('config').'#set2'));
$rssForm = $this->createForm(RssType::class, $config, array('action' => $this->generateUrl('config').'#set2'));
$rssForm->handleRequest($request);
if ($rssForm->isValid()) {
@ -102,7 +103,7 @@ class ConfigController extends Controller
// handle tagging rule
$taggingRule = new TaggingRule();
$newTaggingRule = $this->createForm(new TaggingRuleType(), $taggingRule, array('action' => $this->generateUrl('config').'#set5'));
$newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, array('action' => $this->generateUrl('config').'#set5'));
$newTaggingRule->handleRequest($request);
if ($newTaggingRule->isValid()) {
@ -122,7 +123,7 @@ class ConfigController extends Controller
$newUser = $userManager->createUser();
// enable created user by default
$newUser->setEnabled(true);
$newUserForm = $this->createForm(new NewUserType(), $newUser, array(
$newUserForm = $this->createForm(NewUserType::class, $newUser, array(
'validation_groups' => array('Profile'),
'action' => $this->generateUrl('config').'#set5',
));

View file

@ -2,16 +2,16 @@
namespace Wallabag\CoreBundle\Controller;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Form\Type\NewEntryType;
use Wallabag\CoreBundle\Form\Type\EditEntryType;
use Wallabag\CoreBundle\Filter\EntryFilterType;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;
use Wallabag\CoreBundle\Form\Type\EditEntryType;
use Wallabag\CoreBundle\Form\Type\NewEntryType;
class EntryController extends Controller
{
@ -43,7 +43,7 @@ class EntryController extends Controller
{
$entry = new Entry($this->getUser());
$form = $this->createForm(new NewEntryType(), $entry);
$form = $this->createForm(NewEntryType::class, $entry);
$form->handleRequest($request);
@ -117,7 +117,7 @@ class EntryController extends Controller
{
$this->checkUserAction($entry);
$form = $this->createForm(new EditEntryType(), $entry);
$form = $this->createForm(EditEntryType::class, $entry);
$form->handleRequest($request);
@ -239,7 +239,7 @@ class EntryController extends Controller
throw new \InvalidArgumentException(sprintf('Type "%s" is not implemented.', $type));
}
$form = $this->get('form.factory')->create(new EntryFilterType($repository, $this->getUser()));
$form = $this->createForm(EntryFilterType::class);
if ($request->query->has($form->getName())) {
// manually bind values from the request

View file

@ -2,13 +2,13 @@
namespace Wallabag\CoreBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Entity\Entry;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\UserBundle\Entity\User;
class RssController extends Controller
{

View file

@ -5,9 +5,9 @@ namespace Wallabag\CoreBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Wallabag\CoreBundle\Form\Type\NewTagType;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Form\Type\NewTagType;
class TagController extends Controller
{
@ -21,7 +21,7 @@ class TagController extends Controller
public function addTagFormAction(Request $request, Entry $entry)
{
$tag = new Tag();
$form = $this->createForm(new NewTagType(), $tag);
$form = $this->createForm(NewTagType::class, $tag);
$form->handleRequest($request);
if ($form->isValid()) {

View file

@ -2,10 +2,10 @@
namespace Wallabag\CoreBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class WallabagCoreExtension extends Extension
{

View file

@ -4,10 +4,10 @@ namespace Wallabag\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\XmlRoot;
use Symfony\Component\Validator\Constraints as Assert;
use Wallabag\UserBundle\Entity\User;
/**

View file

@ -2,12 +2,12 @@
namespace Wallabag\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\XmlRoot;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;
use JMS\Serializer\Annotation\XmlRoot;
/**
* Tag.

View file

@ -3,8 +3,8 @@
namespace Wallabag\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use KPhoen\RulerZBundle\Validator\Constraints as RulerZAssert;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Tagging rule.

View file

@ -2,8 +2,8 @@
namespace Wallabag\CoreBundle\Event\Subscriber;
use Lexik\Bundle\FormFilterBundle\Event\Subscriber\DoctrineORMSubscriber;
use Lexik\Bundle\FormFilterBundle\Event\GetFilterConditionEvent;
use Lexik\Bundle\FormFilterBundle\Event\Subscriber\DoctrineORMSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**

View file

@ -2,9 +2,9 @@
namespace Wallabag\CoreBundle\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* @see http://symfony.com/doc/current/cookbook/session/locale_sticky_session.html

View file

@ -2,11 +2,11 @@
namespace Wallabag\CoreBundle\EventListener;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityManager;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Wallabag\CoreBundle\Entity\Config;
class RegistrationConfirmedListener implements EventSubscriberInterface

View file

@ -2,12 +2,17 @@
namespace Wallabag\CoreBundle\Filter;
use Doctrine\ORM\EntityRepository;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\NumberRangeFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\DateRangeFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\CheckboxFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use Doctrine\ORM\EntityRepository;
use Wallabag\UserBundle\Entity\User;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
class EntryFilterType extends AbstractType
{
@ -18,19 +23,19 @@ class EntryFilterType extends AbstractType
* Repository & user are used to get a list of language entries for this user.
*
* @param EntityRepository $entryRepository
* @param User $user
* @param TokenStorage $token
*/
public function __construct(EntityRepository $entryRepository, User $user)
public function __construct(EntityRepository $entryRepository, TokenStorage $token)
{
$this->repository = $entryRepository;
$this->user = $user;
$this->user = $token->getToken()->getUser();
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('readingTime', 'filter_number_range')
->add('createdAt', 'filter_date_range', array(
->add('readingTime', NumberRangeFilterType::class)
->add('createdAt', DateRangeFilterType::class, array(
'left_date_options' => array(
'attr' => array(
'placeholder' => 'dd/mm/yyyy',
@ -47,20 +52,20 @@ class EntryFilterType extends AbstractType
),
)
)
->add('domainName', 'filter_text', array(
->add('domainName', TextFilterType::class, array(
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
if (strlen($value) <= 2 || empty($value)) {
return;
}
$expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%'));
$value = $values['value'];
if (strlen($value) <= 2 || empty($value)) {
return;
}
$expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%'));
return $filterQuery->createCondition($expression);
return $filterQuery->createCondition($expression);
},
))
->add('isArchived', 'filter_checkbox')
->add('isStarred', 'filter_checkbox')
->add('previewPicture', 'filter_checkbox', array(
->add('isArchived', CheckboxFilterType::class)
->add('isStarred', CheckboxFilterType::class)
->add('previewPicture', CheckboxFilterType::class, array(
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return;
@ -71,13 +76,14 @@ class EntryFilterType extends AbstractType
return $filterQuery->createCondition($expression);
},
))
->add('language', 'filter_choice', array(
'choices' => $this->repository->findDistinctLanguageByUser($this->user->getId()),
->add('language', ChoiceFilterType::class, array(
'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())),
'choices_as_values' => true,
))
;
}
public function getName()
public function getBlockPrefix()
{
return 'entry_filter';
}

View file

@ -3,6 +3,9 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Security\Core\Validator\Constraints\UserPassword;
use Symfony\Component\Validator\Constraints;
@ -12,11 +15,11 @@ class ChangePasswordType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('old_password', 'password', array(
->add('old_password', PasswordType::class, array(
'constraints' => new UserPassword(array('message' => 'Wrong value for your current password')),
))
->add('new_password', 'repeated', array(
'type' => 'password',
->add('new_password', RepeatedType::class, array(
'type' => PasswordType::class,
'invalid_message' => 'The password fields must match.',
'required' => true,
'first_options' => array('label' => 'New password'),
@ -29,11 +32,11 @@ class ChangePasswordType extends AbstractType
new Constraints\NotBlank(),
),
))
->add('save', 'submit')
->add('save', SubmitType::class)
;
}
public function getName()
public function getBlockPrefix()
{
return 'change_passwd';
}

View file

@ -3,6 +3,8 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -28,15 +30,16 @@ class ConfigType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('theme', 'choice', array(
->add('theme', ChoiceType::class, array(
'choices' => array_flip($this->themes),
'choices_as_values' => true,
))
->add('items_per_page')
->add('language', 'choice', array(
'choices' => $this->languages,
->add('language', ChoiceType::class, array(
'choices' => array_flip($this->languages),
'choices_as_values' => true,
))
->add('save', 'submit')
->add('save', SubmitType::class)
;
}
@ -47,7 +50,7 @@ class ConfigType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'config';
}

View file

@ -3,6 +3,9 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -11,14 +14,14 @@ class EditEntryType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', 'text', array('required' => true))
->add('is_public', 'checkbox', array('required' => false))
->add('title', TextType::class, array('required' => true))
->add('is_public', CheckboxType::class, array('required' => false))
// @todo: add autocomplete
// ->add('tags', 'entity', array(
// 'class' => 'Wallabag\CoreBundle\Entity\Tag',
// 'choice_translation_domain' => true,
// ))
->add('save', 'submit')
->add('save', SubmitType::class)
;
}
@ -29,7 +32,7 @@ class EditEntryType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'entry';
}

View file

@ -3,6 +3,8 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -11,8 +13,8 @@ class NewEntryType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('url', 'url', array('required' => true))
->add('save', 'submit')
->add('url', UrlType::class, array('required' => true))
->add('save', SubmitType::class)
;
}
@ -23,7 +25,7 @@ class NewEntryType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'entry';
}

View file

@ -3,6 +3,8 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -11,8 +13,8 @@ class NewTagType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('label', 'text', array('required' => true))
->add('save', 'submit')
->add('label', TextType::class, array('required' => true))
->add('save', SubmitType::class)
;
}
@ -23,7 +25,7 @@ class NewTagType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'tag';
}

View file

@ -3,6 +3,11 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints;
@ -12,9 +17,9 @@ class NewUserType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', 'text', array('required' => true))
->add('plainPassword', 'repeated', array(
'type' => 'password',
->add('username', TextType::class, array('required' => true))
->add('plainPassword', RepeatedType::class, array(
'type' => PasswordType::class,
'constraints' => array(
new Constraints\Length(array(
'min' => 8,
@ -23,8 +28,8 @@ class NewUserType extends AbstractType
new Constraints\NotBlank(),
),
))
->add('email', 'email')
->add('save', 'submit')
->add('email', EmailType::class)
->add('save', SubmitType::class)
;
}
@ -35,7 +40,7 @@ class NewUserType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'new_user';
}

View file

@ -3,6 +3,7 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -12,7 +13,7 @@ class RssType extends AbstractType
{
$builder
->add('rss_limit')
->add('save', 'submit')
->add('save', SubmitType::class)
;
}
@ -23,7 +24,7 @@ class RssType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'rss_config';
}

View file

@ -3,6 +3,8 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Wallabag\CoreBundle\Form\DataTransformer\StringToListTransformer;
@ -12,12 +14,12 @@ class TaggingRuleType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('rule', 'text', array('required' => true))
->add('save', 'submit')
->add('rule', TextType::class, array('required' => true))
->add('save', SubmitType::class)
;
$tagsField = $builder
->create('tags', 'text')
->create('tags', TextType::class)
->addModelTransformer(new StringToListTransformer(','));
$builder->add($tagsField);
@ -30,7 +32,7 @@ class TaggingRuleType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'tagging_rule';
}

View file

@ -3,6 +3,10 @@
namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -11,10 +15,10 @@ class UserInformationType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('email', 'email')
->add('twoFactorAuthentication', 'checkbox', array('required' => false))
->add('save', 'submit')
->add('name', TextType::class)
->add('email', EmailType::class)
->add('twoFactorAuthentication', CheckboxType::class, array('required' => false))
->add('save', SubmitType::class)
->remove('username')
->remove('plainPassword')
;
@ -22,7 +26,7 @@ class UserInformationType extends AbstractType
public function getParent()
{
return 'fos_user_registration';
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}
public function configureOptions(OptionsResolver $resolver)
@ -32,7 +36,7 @@ class UserInformationType extends AbstractType
));
}
public function getName()
public function getBlockPrefix()
{
return 'update_user';
}

View file

@ -2,12 +2,12 @@
namespace Wallabag\CoreBundle\Helper;
use JMS\Serializer;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerBuilder;
use PHPePub\Core\EPub;
use PHPePub\Core\Structure\OPF\DublinCore;
use Symfony\Component\HttpFoundation\Response;
use JMS\Serializer;
use JMS\Serializer\SerializerBuilder;
use JMS\Serializer\SerializationContext;
/**
* This class doesn't have unit test BUT it's fully covered by a functional test with ExportControllerTest.

View file

@ -2,9 +2,9 @@
namespace Wallabag\CoreBundle\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface;
use Doctrine\Common\Persistence\ManagerRegistry;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Wallabag\UserBundle\Entity\User;

View file

@ -2,7 +2,7 @@ services:
wallabag_core.helper.detect_active_theme:
class: Wallabag\CoreBundle\Helper\DetectActiveTheme
arguments:
- @security.token_storage
- "@security.token_storage"
- %theme% # default theme from parameters.yml
# custom form type
@ -12,26 +12,22 @@ services:
- %liip_theme.themes%
- %wallabag_core.languages%
tags:
- { name: form.type, alias: config }
- { name: form.type }
wallabag_core.form.registration:
class: Wallabag\CoreBundle\Form\Type\RegistrationType
tags:
- { name: form.type, alias: wallabag_user_registration }
wallabag_core.form.type.forgot_password:
class: Wallabag\CoreBundle\Form\Type\ForgotPasswordType
wallabag_core.filter.type.entry:
class: Wallabag\CoreBundle\Filter\EntryFilterType
arguments:
- @doctrine
- "@wallabag_core.entry_repository"
- "@security.token_storage"
tags:
- { name: form.type, alias: forgot_password }
- { name: form.type }
wallabag_core.param_converter.username_rsstoken_converter:
class: Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter
tags:
- { name: request.param_converter, converter: username_rsstoken_converter }
arguments:
- @doctrine
- "@doctrine"
wallabag_core.table_prefix_subscriber:
class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber
@ -45,41 +41,41 @@ services:
arguments:
- { error_message: false }
calls:
- [ setLogger, [ @logger ] ]
- [ setLogger, [ "@logger" ] ]
tags:
- { name: monolog.logger, channel: graby }
wallabag_core.content_proxy:
class: Wallabag\CoreBundle\Helper\ContentProxy
arguments:
- @wallabag_core.graby
- @wallabag_core.rule_based_tagger
- @logger
- "@wallabag_core.graby"
- "@wallabag_core.rule_based_tagger"
- "@logger"
wallabag_core.rule_based_tagger:
class: Wallabag\CoreBundle\Helper\RuleBasedTagger
arguments:
- @rulerz
- @wallabag_core.tag_repository
- @wallabag_core.entry_repository
- "@rulerz"
- "@wallabag_core.tag_repository"
- "@wallabag_core.entry_repository"
# repository as a service
wallabag_core.entry_repository:
class: Wallabag\CoreBundle\Repository\EntryRepository
factory: [ @doctrine.orm.default_entity_manager, getRepository ]
factory: [ "@doctrine.orm.default_entity_manager", getRepository ]
arguments:
- WallabagCoreBundle:Entry
wallabag_core.tag_repository:
class: Wallabag\CoreBundle\Repository\TagRepository
factory: [ @doctrine.orm.default_entity_manager, getRepository ]
factory: [ "@doctrine.orm.default_entity_manager", getRepository ]
arguments:
- WallabagCoreBundle:Tag
wallabag_core.registration_confirmed:
class: Wallabag\CoreBundle\EventListener\RegistrationConfirmedListener
arguments:
- @doctrine.orm.entity_manager
- "@doctrine.orm.entity_manager"
- %theme%
- %items_on_page%
- %rss_limit%

View file

@ -164,7 +164,7 @@
{% endfor %}
</ul>
<form action="{{ path('config') }}" method="post" {{ form_enctype(form.new_tagging_rule) }}>
{{ form_start(form.new_tagging_rule) }}
{{ form_errors(form.new_tagging_rule) }}
<fieldset class="w500p inline">

View file

@ -2,8 +2,8 @@
namespace Wallabag\CoreBundle\Subscriber;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Mapping\ClassMetadataInfo;
/**

View file

@ -2,15 +2,15 @@
namespace Wallabag\CoreBundle\Tests\Command;
use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
use Wallabag\CoreBundle\Command\InstallCommand;
use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
use Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Tester\CommandTester;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\NullOutput;
use Doctrine\Bundle\DoctrineBundle\Command\DropDatabaseDoctrineCommand;
use Doctrine\Bundle\DoctrineBundle\Command\CreateDatabaseDoctrineCommand;
use Symfony\Component\Console\Tester\CommandTester;
use Wallabag\CoreBundle\Command\InstallCommand;
use Wallabag\CoreBundle\Tests\Mock\InstallCommandMock;
use Wallabag\CoreBundle\Tests\WallabagCoreTestCase;
class InstallCommandTest extends WallabagCoreTestCase
{

View file

@ -4,11 +4,11 @@ namespace Wallabag\CoreBundle\Tests\EventListener;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpKernel\KernelEvents;
use Wallabag\CoreBundle\EventListener\LocaleListener;
class LocaleListenerTest extends \PHPUnit_Framework_TestCase

View file

@ -2,13 +2,13 @@
namespace Wallabag\CoreBundle\Tests\EventListener;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use Wallabag\CoreBundle\EventListener\RegistrationConfirmedListener;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\EventListener\RegistrationConfirmedListener;
use Wallabag\UserBundle\Entity\User;
class RegistrationConfirmedListenerTest extends \PHPUnit_Framework_TestCase

View file

@ -3,12 +3,12 @@
namespace Wallabag\CoreBundle\Tests\EventListener;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Wallabag\CoreBundle\EventListener\UserLocaleListener;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\EventListener\UserLocaleListener;
use Wallabag\UserBundle\Entity\User;
class UserLocaleListenerTest extends \PHPUnit_Framework_TestCase

View file

@ -4,8 +4,8 @@ namespace Wallabag\CoreBundle\Tests\Helper;
use Psr\Log\NullLogger;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Helper\ContentProxy;
use Wallabag\UserBundle\Entity\User;
class ContentProxyTest extends \PHPUnit_Framework_TestCase
{

View file

@ -6,8 +6,8 @@ use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Entity\TaggingRule;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Helper\RuleBasedTagger;
use Wallabag\UserBundle\Entity\User;
class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
{

View file

@ -2,9 +2,9 @@
namespace Wallabag\CoreBundle\Tests\Command;
use Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Request;
use Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter;
use Wallabag\UserBundle\Entity\User;
class UsernameRssTokenConverterTest extends \PHPUnit_Framework_TestCase

View file

@ -2,9 +2,9 @@
namespace Wallabag\CoreBundle\Tests\Subscriber;
use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\Common\EventManager;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Mapping\ClassMetadata;
use Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber;
class TablePrefixSubscriberTest extends \PHPUnit_Framework_TestCase

View file

@ -3,6 +3,7 @@
namespace Wallabag\ImportBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class PocketController extends Controller
@ -23,12 +24,12 @@ class PocketController extends Controller
public function authAction()
{
$requestToken = $this->get('wallabag_import.pocket.import')
->getRequestToken($this->generateUrl('import', [], true));
->getRequestToken($this->generateUrl('import', array(), UrlGeneratorInterface::ABSOLUTE_URL));
$this->get('session')->set('import.pocket.code', $requestToken);
return $this->redirect(
'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', [], true),
'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL),
301
);
}

View file

@ -14,7 +14,7 @@ class WallabagV1Controller extends Controller
*/
public function indexAction(Request $request)
{
$form = $this->createForm(new UploadImportType());
$form = $this->createForm(UploadImportType::class);
$form->handleRequest($request);
$wallabag = $this->get('wallabag_import.wallabag_v1.import');

View file

@ -4,18 +4,20 @@ namespace Wallabag\ImportBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
class UploadImportType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('file', 'file')
->add('save', 'submit')
->add('file', FileType::class)
->add('save', SubmitType::class)
;
}
public function getName()
public function getBlockPrefix()
{
return 'upload_import_file';
}

View file

@ -2,12 +2,12 @@
namespace Wallabag\UserBundle\Controller;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use FOS\UserBundle\Event\FormEvent;
use FOS\UserBundle\Event\GetResponseUserEvent;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use Symfony\Component\HttpFoundation\Request;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class ResettingController extends \FOS\UserBundle\Controller\ResettingController

View file

@ -6,11 +6,11 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Scheb\TwoFactorBundle\Model\Email\TwoFactorInterface;
use Scheb\TwoFactorBundle\Model\TrustedComputerInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
use FOS\UserBundle\Model\User as BaseUser;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\Entry;

View file

@ -8,7 +8,7 @@
{% block messages %}{% endblock %}
{% block content %}
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_start(form) }}
<fieldset class="w500p center">
<h2 class="mbs txtcenter">{% trans %}create an account{% endtrans %}</h2>
{% include "FOSUserBundle:Registration:register_content.html.twig" %}

View file

@ -1,6 +1,6 @@
{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('fos_user_change_password') }}" {{ form_enctype(form) }} method="POST" class="fos_user_change_password">
{{ form_start(form, { 'action': path('fos_user_change_password'), 'attr': { 'class': 'fos_user_change_password' } }) }}
<div class="card-content">
<div class="row">
{{ form_widget(form) }}

View file

@ -1,6 +1,6 @@
{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
<div class="card-content">
<div class="row">

View file

@ -5,7 +5,7 @@
{% block fos_user_content %}
<div class="card-content">
<div class="row">
{{ 'resetting.password_already_requested'|trans }}
{{ 'resetting.password_already_requested'|trans }}
</div>
</div>
{% endblock fos_user_content %}

View file

@ -1,6 +1,6 @@
{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('fos_user_resetting_reset', {'token': token}) }}" {{ form_enctype(form) }} method="POST" class="fos_user_resetting_reset">
{{ form_start(form, { 'action': path('fos_user_resetting_reset', {'token': token}), 'attr': { 'class': 'fos_user_resetting_reset' } }) }}
<div class="card-content">
<div class="row">
{{ form_widget(form) }}

0
var/logs/.gitkeep Normal file
View file

0
var/sessions/.gitkeep Normal file
View file

View file

@ -5,6 +5,18 @@
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
DirectoryIndex app.php
# By default, Apache does not evaluate symbolic links if you did not enable this
# feature in your server configuration. Uncomment the following line if you
# install assets as symlinks or if you experience problems related to symlinks
# when compiling LESS/Sass/CoffeScript assets.
# Options FollowSymlinks
# Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve
# to the front controller "/app.php" but be rewritten to "/app.php/app".
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
@ -18,9 +30,9 @@ DirectoryIndex app.php
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
# Sets the HTTP_AUTHORIZATION header removed by apache
# Sets the HTTP_AUTHORIZATION header removed by Apache
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect to URI without front controller to prevent duplicate content
# (with and without `/app.php`). Only do this redirect on the initial
@ -34,15 +46,15 @@ DirectoryIndex app.php
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
# following RewriteCond (best solution)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule ^ - [L]
# Rewrite all other queries to the front controller.
RewriteRule .? %{ENV:BASE}/app.php [L]
RewriteRule ^ %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>

View file

@ -1,23 +1,23 @@
<?php
use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
/**
* @var Composer\Autoload\ClassLoader
*/
$loader = require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../var/bootstrap.php.cache';
// Enable APC for autoloading to improve performance.
// You should change the ApcClassLoader first argument to a unique prefix
// in order to prevent cache key conflicts with other applications
// also using APC.
/*
$apcLoader = new ApcClassLoader(sha1(__FILE__), $loader);
$apcLoader = new Symfony\Component\ClassLoader\ApcClassLoader(sha1(__FILE__), $loader);
$loader->unregister();
$apcLoader->register(true);
*/
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

View file

@ -4,24 +4,26 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
// read http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup
// for more information
//umask(0000);
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
|| !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'fe80::1', '::1']) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
/**
* @var Composer\Autoload\ClassLoader $loader
*/
$loader = require __DIR__.'/../app/autoload.php';
Debug::enable();
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();

View file

@ -1,2 +1,4 @@
# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: *
Disallow: /