1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-07-22 17:18:37 +00:00

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

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) }}