- 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.
- Les nouvelles options
theme
eticon_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
- La colonne
sort
de la tableuser_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 tableuser_crud_settings
a maintenant un typeJSON
. Mettre à jour la base de données. - La colonne
sense
de la tableuser_crud_settings
est remplacée par la colonnesort_direction
. Mettre à jour la base de données. - La colonne
results_displayed
de la tableuser_crud_settings
est remplacée par la colonnemax_per_page
. Mettre à jour la base de données. - La méthode
getSense
deUserCrudSettings
est remplacée pargetSortDirection
. - La méthode
getResultsDisplayed
est remplacée pargetMaxPerPage
. - Les methodes suivantes sont supprimées :
transformToCrudSession
updateFromSessionManager
Namespace: Ecommit\CrudBundle\Controller
- La classe
AbstractCrudLegacyController
est supprimée. Utiliser à la place la classeAbstractCrudController
. - La classe
AbstractCrudController
n'hérite plus deSymfony\Component\DependencyInjection\ContainerAwareTrait
mais deSymfony\Bundle\FrameworkBundle\Controller\AbstractController
. Adapter l'utilisation des services en conséquence. - La méthode
getPathView
est renommée engetTemplateName
dansCrudControllerTrait
. Sa signature est maintenantgetTemplateName(string $action): string
- La méthode
getTemplateName
(anciennementgetPathView
) dansCrudControllerTrait
est maintenant abstraite. Celle-ci doit être rajouter dans vos contrôleurs CRUD. - La méthode
createCrud
deCrudControllerTrait
est maintenantfinal
. Cette méthode possède maintenant un unique argument d'options. - La méthode
autoListAction
deCrudControllerTrait
est supprimée. Utiliser à la place la méthodegetCrudResponse
(signature différente). - La méthode
autoAjaxListAction
deCrudControllerTrait
est supprimée. Utiliser à la place la méthodegetAjaxCrudResponse
(signature différente). - La méthode
autoAjaxSearchAction
deCrudControllerTrait
est supprimée. Il n'existe plus d'action spécifique à la recherche. - Les méthodes
prepareList
,processSearch
,renderCrudView
etrenderCrud
deCrudControllerTrait
sont supprimées. - La méthode
configCrud
deCrudControllerTrait
est supprimée. Utiliser à la place la méthodegetCrudOptions
(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 pardisplayed_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
- L'option
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
- Bien que l'ancienne signature de
setMaxPerPage
(anciennementsetAvailableResultsPerPage
)setDefaultSort
setDefaultPersonalizedSort
setQueryBuilder
setRoute
createSearchForm
(anciennementcreateSearcherForm
)setDisplayResultsOnlyIfSearch
setBuildPaginator
(si fonction anonyme comme valeur, le 1er argument de celle-ci n'est plus un objetQueryBuilder
maisCrud
)setPersistentSettings
setDivIdSearch
setDivIdList
setTwigFunctionsConfiguration
- Retourner un tableau grâce à l'appel de
CrudConfig::getOptions()
- Une instance de
- Les méthodes
addDataAfterBuildQuery
,beforeBuildQuery
etafterBuildQuery
deCrudControllerTrait
sont supprimées. Voir l'alternative avec le nouveau système. - La méthode
getCrudRequiredServices
deCrudControllerTrait
ne retourne plus les servicestwig
etrequest_stack
. Si les contrôleurs n'hérite pas deAbstractCrudController
ouSymfony\Bundle\FrameworkBundle\Controller\AbstractController
, ces services ne seront plus injectés au locator du contrôleur. - La donnée membre
$cm
deCrudControllerTrait
est supprimée.
Namespace: Ecommit\CrudBundle\Crud
- Les classes
Crud
,CrudColumn
,CrudFactory
etCrudSession
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
- Avant:
- La méthode
init
deCrud
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 objetSearchFormBuilder
(peut être appelée uniquement avant que la méthodecreateView
soit appelée)getSearchForm
: Retourne un objetFormView
(peut être appelée uniquement après que la méthodecreateView
soit appelée)
setUseDbal
configureTemplate
,getTemplateConfiguration
etvalidateConfigureTemplateFunctionName
: 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
deCrud
est renommée encreateSearchForm
. La signature est modifiée:- Avant:
createSearcherForm(AbstractFormSearcher $defaultFormSearcherData, $type = null, $options = [])
- Après:
createSearchForm(SearcherInterface $defaultData, ?string $type = null, array $options = [])
- Avant:
- La méthode
createDisplaySettingsForm
deCrud
n'est plus publique. - La méthode
getDefaultSense
deCrud
est renommée engetDefaultSortDirection
- La méthode
raz
deCrud
est renommée enreset
- La méthode
razSort
deCrud
est renommée enresetSort
- La méthode
processForm
deCrud
est renommée enprocessSearchForm
- La méthode
clearTemplate
deCrud
est renommée encreateView
- La méthode
getAvailableResultsPerPage
deCrud
est renommée engetMaxPerPageChoices
- La méthode
getDefaultResultsPerPage
deCrud
est renommée engetDefaultMaxPerPage
- La méthode
getRouteParams
deCrud
est renommée engetRouteParameters
- Les options du FormType personnalisé du formulaire de recherche doivent être passées dans l'option
form_options
(3ème argument) decreateSearchForm
- 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
- Avant:
- Toutes les données membres de
CrudFactory
sont supprimées. Un locator est utilisé à la place. - La méthode
create
deCrudFactory
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 deSearcherInterface
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).
Namespace: Ecommit\CrudBundle\Crud\Rest
- Les classes
Ecommit\CrudBundle\Crud\Rest\*
n'existent plus. Voir l'alternative avec le nouveau système.
Namespace: Ecommit\CrudBundle\Form\Searcher
- La classe
AbstractFormSearcher
est supprimée et remplacée parAbstractSearcher
, avec un fonctionnement et une API totalement différents. Vos formulaires de recherche doivent maintenant hériter deAbstractSearcher
ou implémenterSearcherInterface
. Voir les liens suivants:
Namespace: Ecommit\CrudBundle\Form\Filter
- Les classes
Ecommit\CrudBundle\Form\Filter\FieldFillter*
sont supprimées et remplacées par de nouvelles classesEcommit\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 parAbstractFilter
, 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 deAbstractFilter
ou implémentantFilterInterface
. (Remarque: Avec l'option autoconfigure de Symfony, le tag est automatiquement ajouté aux services).
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
: UtiliserEcommit\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
- 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
- Méthode
Paginate::createDoctrinePaginator
: UtiliserEcommit\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 optionby_identifier
(si nulle ou non). - L'option
identifier
est renommée enby_identifier
. - Les options
count_manual_value
etcount_options
sont fusionnées en une unique optioncount
.
- Retourne un objet de type
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 doncArrayPaginator
,AbstractDoctrinePaginator
,DoctrineDBALPaginator
etDoctrineORMPaginator
) :- 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) etmax_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éthodecount
),setPage
(utiliser l'optionpage
du constructeur),getMaxPerPage
(utiliser l'optionmax_per_page
) du constructeur. - Méthodes publiques abstraites supprimées :
init
,getResults
(utiliser la méthodegetIterator
). - Méthodes protégées supprimées :
setCountResults
(utiliser l'optioncount
du constructeur),initLastPage
,isIteratorInitialized
. - Données membres protégées supprimées:
page
,maxPerPage
,lastPage
,countResults
,results
. - L'équivalent de
AbstractPaginator
estEcommit\Paginator\AbstractPaginator
.
- Pour
ArrayPaginator
, utilisez à la paceEcommit\Paginator\ArrayPaginator
avec les modifications suivantes :- Les méthodes
setData
etsetResults
sont supprimées. Utiliser à la place l'optiondata
du constructeur. - Les méthodes
setResultsWithoutSlice
etsetDataWithoutSlice
sont supprimées. Utiliser à la place les 2 optionsdata
etcount
du constructeur. - Données membres protégées supprimées :
initialObjects
,manualCountResults
.
- Les méthodes
- Pour
AbstractDoctrinePaginator
(et doncDoctrineDBALPaginator
etDoctrineORMPaginator
) :- 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
estEcommit\Plaginator\AbstractDoctrinePaginator
.
- L'objet QueryBuilder est à passer dans l'option
- Pour
DoctrineDBALPaginator
, utilisez à la placeEcommit\DoctrineUtils\Paginator\DoctrineDBALPaginator
. - Pour
DoctrineORMPaginator
, utilisez à la placeEcommit\DoctrineUtils\Paginator\DoctrineORMPaginator
avec les modifications suivantes :- La méthode
setSimplifiedRequest
est supprimée. Utiliser à la place l'optionsimplified_request
du constructeur. - La méthode
setFetchJoinCollection
est supprimée. Utiliser à la place l'optionfetch_join_collection
du constructeur. - Méthodes publiques supprimées :
isSimplifiedRequest
,isFetchJoinCollection
.
- La méthode
Namespace: Ecommit\CrudBundle\Form\Type
- Modifications apportées sur
DisplaySettingsType
:- Ajout de la validation.
- Ajout des champs
resultsPerPage
,displayedColumns
,reset
, etsave
. - Ajout de l'option requise
reset_settings_url
. - L'option
resultsPerPageChoices
est renommée enresults_per_page_choices
. - L'option
columnsChoices
est renommée encolumns_choices
.
- Les options suivantes des fonctions Twig
paginator_links
etcrud_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 = [])
- Avant
- 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
- Avant:
- Pour une utilisation des fonctions Twig
paginator_links
etcrud_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
- Avant:
- Classes CSS associées au tag
li
pour la 1ère page:- Avant: [
text
ouimage
] +first
- Maintenant:
first
- Avant: [
- Classes CSS associées au tag
li
pour la page précédente:- Avant: [
text
ouimage
] +previous
- Maintenant:
previous
- Avant: [
- Classes CSS associées au tag
li
pour la page suivante:- Avant: [
text
ouimage
] +next
- Maintenant:
next
- Avant: [
- Classes CSS associées au tag
li
pour la dernière page:- Avant: [
text
ouimage
] +last
- Maintenant:
last
- Avant: [
- Classes CSS associées au tag
li
pour la page courante:- Avant:
pagination_current
(uniquement pour non BootStrap) - Maintenant:
current
- Avant:
- Classes CSS associées au tag
li
pour les autres pages:- Avant:
pagination_no_current
(uniquement pour non BootStrap) - Maintenant: Aucune
- Avant:
- Classe CSS associée au tag
- 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
- Avant:
- L'option
repeated_values_add_title
de la fonction Twigcrud_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
- Avant:
- La fonction Twig
crud_search_form
est renommée encrud_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
- Avant:
- La fonction Twig
crud_search_reset
est renommée encrud_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
- Avant:
- 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
- Avant:
- 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 enrender
:paginator_links
crud_paginator_links
crud_th
crud_td
crud_display_settings
crud_search_form_reset
(anciennementcrud_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
Namespace: Ecommit\CrudBundle\Helper
La classe CrudHelper
est supprimée. Utiliser à la places les fonctions Twig.
- 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 domaineEcommitCrudBundle
:
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 |
- Les images
images/i16/*.png
sont supprimées. - Le fichier JavaScript
js/scrollToFirstMessage.js
est supprimé.
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
.
- 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