Skip to content

Latest commit

 

History

History
417 lines (338 loc) · 23.5 KB

3.0.md

File metadata and controls

417 lines (338 loc) · 23.5 KB

Mise à jour de 2.6 vers 3.0

Généralités

  • Les prérequis et configuration du Bundle sont modifiés. Suivre la procédure d'installation pour adapter votre projet.
  • Les dépendances suivantes sont supprimées:
    • doctrine/common
    • ecommit/javascript-bundle
    • ecommit/util-bundle
    • twig/extensions
  • La signature des méthodes a été modifiée en ajoutant le type des arguments et de retour.

Configuration

  • Les nouvelles options theme et icon_theme sont obligatoires. Voir la procédure d'installation pour les valeurs disponibles.
  • L'option template_configuration est supprimée. Voir l'alternative avec twig_functions_configuration.
  • L'option images est supprimée.
  • Les paramètres suivants sont supprimés:
    • ecommit_crud.template_configuration
    • ecommit_crud.images

UserCrudSettings

  • La colonne sort de la table user_crud_settings a maintenant une longueur de 100 caractères (30 avant). Mettre à jour la base de données
  • La colonne displayed_columns de la table user_crud_settings a maintenant un type JSON. Mettre à jour la base de données.
  • La colonne sense de la table user_crud_settings est remplacée par la colonne sort_direction. Mettre à jour la base de données.
  • La colonne results_displayed de la table user_crud_settings est remplacée par la colonne max_per_page. Mettre à jour la base de données.
  • La méthode getSense de UserCrudSettings est remplacée par getSortDirection.
  • La méthode getResultsDisplayed est remplacée par getMaxPerPage.
  • Les methodes suivantes sont supprimées :
    • transformToCrudSession
    • updateFromSessionManager

Contrôleur

Namespace: Ecommit\CrudBundle\Controller

  • La classe AbstractCrudLegacyController est supprimée. Utiliser à la place la classe AbstractCrudController.
  • La classe AbstractCrudController n'hérite plus de Symfony\Component\DependencyInjection\ContainerAwareTrait mais de Symfony\Bundle\FrameworkBundle\Controller\AbstractController. Adapter l'utilisation des services en conséquence.
  • La méthode getPathView est renommée en getTemplateName dans CrudControllerTrait. Sa signature est maintenant getTemplateName(string $action): string
  • La méthode getTemplateName (anciennement getPathView) dans CrudControllerTrait est maintenant abstraite. Celle-ci doit être rajouter dans vos contrôleurs CRUD.
  • La méthode createCrud de CrudControllerTrait est maintenant final. Cette méthode possède maintenant un unique argument d'options.
  • La méthode autoListAction de CrudControllerTrait est supprimée. Utiliser à la place la méthode getCrudResponse (signature différente).
  • La méthode autoAjaxListAction de CrudControllerTrait est supprimée. Utiliser à la place la méthode getAjaxCrudResponse (signature différente).
  • La méthode autoAjaxSearchAction de CrudControllerTrait est supprimée. Il n'existe plus d'action spécifique à la recherche.
  • Les méthodes prepareList, processSearch, renderCrudView et renderCrud de CrudControllerTrait sont supprimées.
  • La méthode configCrud de CrudControllerTrait est supprimée. Utiliser à la place la méthode getCrudOptions (signature différente). Dans cette nouvelle méthode :
    • Une instance de Ecommit\CrudBundle\Crud\CrudConfig doit être créé grâce à $this->createCrudConfig()
    • Seules les methodes suivantes (par rapport à l'ancien système) peuvent être conservées :
      • setSessionName
      • addColumn avec les changements suivants :
        • L'option default_displayed est remplacée par displayed_by_default
        • Bien que l'ancienne signature de addColumn reste compatible, il est conseillé de passer à cette méthode un unique argument d'options suivantes: id, alias, label, sortable, displayed_by_default, alias_sort, alias_search
      • addVirtualColumn avec les changements suivants :
        • Bien que l'ancienne signature de addColumn reste compatible, il est conseillé de passer à cette méthode un unique argument d'options suivantes: id, alias
      • setMaxPerPage (anciennement setAvailableResultsPerPage)
      • setDefaultSort
      • setDefaultPersonalizedSort
      • setQueryBuilder
      • setRoute
      • createSearchForm (anciennement createSearcherForm)
      • setDisplayResultsOnlyIfSearch
      • setBuildPaginator (si fonction anonyme comme valeur, le 1er argument de celle-ci n'est plus un objet QueryBuilder mais Crud)
      • setPersistentSettings
      • setDivIdSearch
      • setDivIdList
      • setTwigFunctionsConfiguration
    • Retourner un tableau grâce à l'appel de CrudConfig::getOptions()
  • Les méthodes addDataAfterBuildQuery, beforeBuildQuery et afterBuildQuery de CrudControllerTrait sont supprimées. Voir l'alternative avec le nouveau système.
  • La méthode getCrudRequiredServices de CrudControllerTrait ne retourne plus les services twig et request_stack. Si les contrôleurs n'hérite pas de AbstractCrudController ou Symfony\Bundle\FrameworkBundle\Controller\AbstractController, ces services ne seront plus injectés au locator du contrôleur.
  • La donnée membre $cmde CrudControllerTrait est supprimée.

Crud

Namespace: Ecommit\CrudBundle\Crud

  • Les classes Crud, CrudColumn, CrudFactory et CrudSession sont maintenant finales.
  • La signature du constructeur de Crud est modifiée:
    • Avant: __construct($sessionName, RouterInterface $router, FormFactoryInterface $formFactory, Request $request, Registry $registry, $user)
    • Maintenant: __construct(array $options, ContainerInterface $container)
    • Utilisation d'un locator
  • La méthode init de Crud n'est plus publique.
  • Les méthodes suivantes de Crud sont supprimées:
    • getSearcherForm. Elle est remplacée par les méthodes suivantes :
      • getSearchFormBuilder : Retourne un objet SearchFormBuilder (peut être appelée uniquement avant que la méthode createView soit appelée)
      • getSearchForm : Retourne un objet FormView (peut être appelée uniquement après que la méthode createView soit appelée)
    • setUseDbal
    • configureTemplate, getTemplateConfiguration et validateConfigureTemplateFunctionName: Voir l'alternative avec le nouveau système.
    • setSearchRoute: Il n'existe plus de route spécifique à la recherche.
    • initializeFieldsFilter
    • addColumn
    • addVirtualColumn
    • setQueryBuilder
    • setAvailableResultsPerPage
    • setDefaultSort
    • setDefaultPersonalizedSort
    • setRoute
    • setDisplayResultsOnlyIfSearch
    • setBuildPaginator
    • setPersistentSettings
    • setDivIdSearch
    • setDivIdList
  • La méthode createSearcherForm de Crud est renommée en createSearchForm. La signature est modifiée:
    • Avant: createSearcherForm(AbstractFormSearcher $defaultFormSearcherData, $type = null, $options = [])
    • Après: createSearchForm(SearcherInterface $defaultData, ?string $type = null, array $options = [])
  • La méthode createDisplaySettingsForm de Crud n'est plus publique.
  • La méthode getDefaultSense de Crud est renommée en getDefaultSortDirection
  • La méthode raz de Crud est renommée en reset
  • La méthode razSort de Crud est renommée en resetSort
  • La méthode processForm de Crud est renommée en processSearchForm
  • La méthode clearTemplate de Crud est renommée en createView
  • La méthode getAvailableResultsPerPage de Crud est renommée en getMaxPerPageChoices
  • La méthode getDefaultResultsPerPage de Crud est renommée en getDefaultMaxPerPage
  • La méthode getRouteParams de Crud est renommée en getRouteParameters
  • Les options du FormType personnalisé du formulaire de recherche doivent être passées dans l'option form_options (3ème argument) de createSearchForm
  • La signature du constructeur de CrudFactory est modifiée:
    • Avant: __construct(RouterInterface $router, FormFactoryInterface $formFactory, RequestStack $requestStack, ManagerRegistry $registry, TokenStorageInterface $tokenStorage, array $templateConfiguration)
    • Maintenant: __construct(ContainerInterface $container)
    • Utilisation d'un locator
  • Toutes les données membres de CrudFactory sont supprimées. Un locator est utilisé à la place.
  • La méthode create de CrudFactory possède maintenant un unique argument d'options.
  • Les données membres publiques de CrudSession n'existent plus (formSearcherData, resultsPerPage, displayedColumns, sort, sense, page). Utiliser à la place les fonctions getters (modification des valeurs impossible). qui est une instance de SearcherInterface ou nulle.
  • Le constructeur de CrudColumn possède maintenant un unique argument d'options.
  • Les données membres publiques de CrudColumn n'existent plus (id, alias, aliasSearch, aliasSort, label, sortable, defaultDisplayed). Utiliser à la place les fonctions getters (modification des valeurs impossible).

Crud REST

Namespace: Ecommit\CrudBundle\Crud\Rest

  • Les classes Ecommit\CrudBundle\Crud\Rest\* n'existent plus. Voir l'alternative avec le nouveau système.

Formulaire de recherche

Namespace: Ecommit\CrudBundle\Form\Searcher

Filtres du formulaire de recherches

Namespace: Ecommit\CrudBundle\Form\Filter

  • Les classes Ecommit\CrudBundle\Form\Filter\FieldFillter* sont supprimées et remplacées par de nouvelles classes Ecommit\CrudBundle\Form\Filter\*Filter (dans le même namespace) mais avec un fonctionnement et une API totalement différents. Voir les nouveaux filtres
  • La classe AbstractFieldFilter est supprimée et remplacée par AbstractFilter, avec un fonctionnement et une API totalement différents. Si vous avez réalisé vos propres filtres, vous devez les adapter avec la nouvelle API.
  • Les filtres sont maintenant des services ayant le tag ecommit_crud.filter, héritant de AbstractFilter ou implémentant FilterInterface. (Remarque: Avec l'option autoconfigure de Symfony, le tag est automatiquement ajouté aux services).

DoctrineExtension

Namespace: Ecommit\CrudBundle\DoctrineExtension

Les classes Ecommit\CrudBundle\DoctrineExtension\* sont supprimées. Utiliser à la place ecommit/doctrine-utils :

REMARQUE: Ce bundle a comme dépendances cette librairie.

Si vous utilisez l'une de ces classes, voici la migration à effectuer :

  • Méthode Paginate::count : Pas d'équivalent
  • Méthode Paginate::countQueryBuilder : Utiliser Ecommit\DoctrineUtils\Paginator\DoctrinePaginatorBuilder::countQueryBuilder avec les adaptations suivantes :
    • La méthode contient un unique argument : Un tableau d'options (le nom des options reste inchangé). L'objet QueryBuilder est à passer dans l'option query_builder de ce tableau
  • Méthode Paginate::createDoctrinePaginator : Utiliser Ecommit\DoctrineUtils\Paginator\DoctrinePaginatorBuilder::createDoctrinePaginator avec les adaptations suivantes :
    • Retourne un objet de type Ecommit\DoctrineUtils\Paginator\AbstractDoctrinePaginator
    • L'option behavior n'existe plus. Le choix du comportement est réalisé en fonction de la nouvelle option by_identifier (si nulle ou non).
    • L'option identifier est renommée en by_identifier.
    • Les options count_manual_value et count_options sont fusionnées en une unique option count.

Paginator

Namespace: Ecommit\CrudBundle\Paginator

Les classes Ecommit\CrudBundle\Paginator\* sont supprimées. Utiliser à la place ecommit/paginator et ecommit/doctrine-utils :

REMARQUE: Ce bundle a comme dépendances ces 2 librairies.

Si vous utilisez l'une de ces classes, voici la migration à effectuer :

  • Pour AbstractPaginator (et donc ArrayPaginator, AbstractDoctrinePaginator, DoctrineDBALPaginator et DoctrineORMPaginator) :
    • L'unique valeur du constructeur est un tableau d'options.
    • Toutes les méthodes publiques set* n'existent plus. Utiliser le tableau d'options du constructeur.
    • Ne plus appeler la fonction init qui est supprimée.
    • Passez le numéro de page et le nombre résultats par page dans les options du constructeurs: options page (oligatoire) et max_per_page (facultative).
    • Méthodes publiques ajoutées : pageExists, isInitialized, getOptions, getOption.
    • Méthodes abstraites protégées ajoutées : buildCount, buildIterator.
    • Méthodes publiques supprimées : getCountResults (utiliser méthode count), setPage (utiliser l'option page du constructeur), getMaxPerPage (utiliser l'option max_per_page) du constructeur.
    • Méthodes publiques abstraites supprimées : init, getResults (utiliser la méthode getIterator).
    • Méthodes protégées supprimées : setCountResults (utiliser l'option count du constructeur), initLastPage, isIteratorInitialized.
    • Données membres protégées supprimées: page, maxPerPage, lastPage, countResults, results.
    • L'équivalent de AbstractPaginator est Ecommit\Paginator\AbstractPaginator.
  • Pour ArrayPaginator, utilisez à la pace Ecommit\Paginator\ArrayPaginator avec les modifications suivantes :
    • Les méthodes setData et setResults sont supprimées. Utiliser à la place l'option data du constructeur.
    • Les méthodes setResultsWithoutSlice et setDataWithoutSlice sont supprimées. Utiliser à la place les 2 options data et count du constructeur.
    • Données membres protégées supprimées : initialObjects, manualCountResults.
  • Pour AbstractDoctrinePaginator (et donc DoctrineDBALPaginator et DoctrineORMPaginator) :
    • L'objet QueryBuilder est à passer dans l'option query_builder du constructeur.
    • Méthodes abstraites protégées supprimées : getQueryBuilderClass, initPaginator.
    • Méthodes publiques supprimées : getQueryBuilder, setQueryBuilder, getManualCountResults, setManualCountResults getCountOptions, setCountOptions.
    • Données membres protégées supprimées : query, manualCountResults, countOptions.
    • L'équivalent de AbstractDoctrinePaginator est Ecommit\Plaginator\AbstractDoctrinePaginator.
  • Pour DoctrineDBALPaginator, utilisez à la place Ecommit\DoctrineUtils\Paginator\DoctrineDBALPaginator.
  • Pour DoctrineORMPaginator, utilisez à la place Ecommit\DoctrineUtils\Paginator\DoctrineORMPaginator avec les modifications suivantes :
    • La méthode setSimplifiedRequest est supprimée. Utiliser à la place l'option simplified_request du constructeur.
    • La méthode setFetchJoinCollection est supprimée. Utiliser à la place l'option fetch_join_collection du constructeur.
    • Méthodes publiques supprimées : isSimplifiedRequest, isFetchJoinCollection.

Form

Namespace: Ecommit\CrudBundle\Form\Type

  • Modifications apportées sur DisplaySettingsType:
    • Ajout de la validation.
    • Ajout des champs resultsPerPage, displayedColumns, reset, et save.
    • Ajout de l'option requise reset_settings_url.
    • L'option resultsPerPageChoices est renommée en results_per_page_choices.
    • L'option columnsChoices est renommée en columns_choices.

Twig

  • Les options suivantes des fonctions Twig paginator_links et crud_paginator_links sont supprimées. Surcharger le thème Twig si besoin:
    • buttons
    • image_first
    • image_previous
    • image_next
    • image_last
    • text_first
    • text_previous
    • text_next
    • text_last
    • use_bootstrap
    • bootstrap_size
  • La signature de la fonction Twig paginator_links est modifiée:
    • Avant paginator_links(AbstractPaginator $paginator, $routeName, $routeParams, $options)
    • Maintenant: paginator_links(PaginatorInterface $paginator, string $routeName, array $routeParameters = [], array $options = [])
  • La signature de la fonction Twig crud_paginator_links est modifiée:
    • Avant: crud_paginator_links(Crud $crud, $options = [], $ajaxOptions = [])
    • Maintenant: crud_paginator_links(Crud $crud, array $options = [])
    • Passer les options Ajax dans l'option ajax_options de $options
  • Pour une utilisation des fonctions Twig paginator_links et crud_paginator_links, les classes CSS ont été modifiées. Voici les nouvelles classes CSS, quelque soit l'utilisation de BootStrap ou non (les classes CSS propres à Bootstrap ne sont pas précisées):
    • Classe CSS associée au tag nav:
      • Avant: pagination_nobootstrap (uniquement pour non BootStrap)
      • Maintenant: ec-crud-pagination
    • Classes CSS associées au tag li pour la 1ère page:
      • Avant: [text ou image] + first
      • Maintenant: first
    • Classes CSS associées au tag li pour la page précédente:
      • Avant: [text ou image] + previous
      • Maintenant: previous
    • Classes CSS associées au tag li pour la page suivante:
      • Avant: [text ou image] + next
      • Maintenant: next
    • Classes CSS associées au tag li pour la dernière page:
      • Avant: [text ou image] + last
      • Maintenant: last
    • Classes CSS associées au tag li pour la page courante:
      • Avant: pagination_current (uniquement pour non BootStrap)
      • Maintenant: current
    • Classes CSS associées au tag li pour les autres pages:
      • Avant: pagination_no_current (uniquement pour non BootStrap)
      • Maintenant: Aucune
  • Les options suivantes de la fonction Twig crud_th sont supprimées. Surcharger le thème Twig si besoin:
    • image_up
    • image_down
  • La signature de la fonction Twig crud_th est modifiée:
    • Avant: crud_th($columnId, Crud $crud, $options = [], $thOptions = [], $ajaxOptions = [])
    • Maintenant: crud_th(string $columnId, Crud $crud, array $options = [])
    • Passer les attributs th dans l'option th_attr de $options
    • Passer les options Ajax dans l'option ajax_options de $options
  • L'option repeated_values_add_title de la fonction Twig crud_td est supprimée. Surcharger le thème Twig si besoin.
  • La signature de la fonction Twig crud_td est modifiée:
    • Avant: crud_td($columnId, Crud $crud, $value, $options = [], $tdOptions = [])
    • Après: crud_td(string $columnId, Crud $crud, $value, $options = [])
    • Passer les attributs td dans l'option td_attr de $options
  • La fonction Twig crud_search_form est renommée en crud_search_form_start. La signature est modifiée:
    • Avant: crud_search_form(Crud $crud, $ajaxOptions = [], $htmlOptions = [])
    • Après: crud_search_form_start(Crud $crud, array $options = [])
    • Passer les options Ajax dans l'option ajax_options de $options
    • Passer les attributs HTML du tag dans l'option form_attr de $options
  • La fonction Twig crud_search_resetest renommée en crud_search_form_reset. La signature est modifiée:
    • Avant: crud_search_reset(Crud $crud, $options = [], $ajaxOptions = [], $htmlOptions = [])
    • Après crud_search_form_reset(Crud $crud, $options = [])
    • Passer les options Ajax dans l'option ajax_options de $options
    • Passer les attributs HTML du tag dans l'option button_attr de $options
  • La fonction Twig crud_search_form_submit doit être appelée pour l'ajout du bouton d'envoi du formulaire de recherche.
  • La signature de la fonction Twig crud_display_settings est modifiée:
    • Avant: crud_display_settings(Crud $crud, $options = [], $ajaxOptions = [])
    • Maintenant: crud_display_settings(Crud $crud, array $options = [])
    • Passer les options Ajax dans l'option ajax_options de $options
  • Les options suivantes de la fonction Twig crud_display_settings sont supprimées. Surcharger le thème Twig si besoin:
    • image_url
    • use_bootstrap
    • modal_close_div_class
  • L'option template des fonctions Twig suivantes est renommée en render:
    • paginator_links
    • crud_paginator_links
    • crud_th
    • crud_td
    • crud_display_settings
    • crud_search_form_reset (anciennement crud_search_reset)
  • Les fonctions Twig suivantes sont supprimées. Voir l'alternative avec le nouveau système:
    • crud_declare_modal
    • crud_remote_modal
    • crud_form_modal
  • La constructeur de la classe CrudExtension est modifié.
  • Les templates suivants sont supprimés:
    • EcommitCrud/Crud/double_search.html.twig
    • EcommitCrud/Crud/form_settings_*
    • EcommitCrud/Form/bootstrap_3_*
    • EcommitCrud/Form/div_layout.html.twig

Crud Helper

Namespace: Ecommit\CrudBundle\Helper

La classe CrudHelper est supprimée. Utiliser à la places les fonctions Twig.

Traductions

  • Toutes les traductions de la version 2.x (dans le domaine messages) sont supprimées. Certaines de ces traductions ont été migrées vers un nouveau domaine EcommitCrudBundle:
ID des traductions dans 2.x (domaine messages) ID équivalent dans 3.0 (domaine EcommitCrudBundle)
Display Settings display_settings.title
Number of results per page display_settings.results_per_page
Columns to be shown display_settings.displayed_columns
You need to select at least one column to display Aucun équivalent
Save display_settings.save
Search search.submit
Reset search.reset
{0} No results|{1} 1 result found|]1,Inf] %count% results found Aucun équivalent
Page %firstPage%/%lastPage% Aucun équivalent
Results %first%-%last% Aucun équivalent
Page %page%/%lastPage% Aucun équivalent
filter.true filter.true
filter.false filter.false
filter.choices.placeholder Aucun équivalent
picker.add Aucun équivalent
picker.list Aucun équivalent
reset_display_settings display_settings.reset_display_settings
check_all display_settings.check_all
uncheck_all display_settings.uncheck_all

Assets

  • Les images images/i16/*.png sont supprimées.
  • Le fichier JavaScript js/scrollToFirstMessage.js est supprimé.

Evenements

Les événements suivants sont supprimés :

  • ec-crud-update-search-after
  • ec-crud-update-list-after

Utiliser à la place l'événement ec-crud-ajax-update-dom-after.

Services

  • Les services suivants sont renommés :
Ancien nom Nouveau nom
Ecommit\CrudBundle\Twig\CrudExtension ecommit_crud.twig.crud_extension
Ecommit\CrudBundle\EventListener\MappingEntities ecommit_crud.event_listener.mapping_entities
  • Les services suivant sont maintenant privés :
    • ecommit_crud.factory
    • Ecommit\CrudBundle\Crud\CrudFactory