Depuis l'utilisation de PHP 7.0 et supérieur, le mode strict de php génère des avertissements comme celui-ci:Comment étendre contrôleur femanager sous php 7
PHP Warning: Declaration of In2code\Femanagerextended\Controller\EditController::updateAction(In2code\Femanagerextended\Domain\Model\User $user) should be compatible with In2code\Femanager\Controller\EditController::updateAction(In2code\Femanager\Domain\Model\User $user) in ($PATH)\typo3conf\ext\femanagerextended\Classes\Controller\EditController.php line 17
lorsque vous essayez d'étendre un contrôleur existant de l'extension TYPO3 femanager utilisant le décrit manière la meilleure section de la pratique du manuel:
<?php
namespace In2code\Femanagerextended\Controller;
use In2code\Femanager\Controller\EditController as EditControllerFemanager;
use In2code\Femanagerextended\Domain\Model\User;
/**
* Class EditController
*
* @package In2code\Femanagerextended\Controller
*/
class EditController extends EditControllerFemanager
{
/**
* action update
*
* @param User $user
* @validate $user In2code\Femanager\Domain\Validator\ServersideValidator
* @validate $user In2code\Femanager\Domain\Validator\PasswordValidator
* @return void
*/
public function updateAction(User $user)
{
parent::updateAction($user);
}
}
Merci pour votre explication! Je dois passer quelques données supplémentaires à la vue dans le newAction() et j'obtiens exactement votre avertissement PHP7. Comment pourrais-je y parvenir, car $ this-> view n'est pas disponible dans le fichier initializeNewAction()? Btw., Pourriez-vous expliquer votre exemple initializeNewAction() un peu plus en profondeur? Par exemple. qu'est-ce que/** @var \ Mediagear \ Jdcompetition \ Xclass \ Extbase \ Mvc \ Contrôleur \ Argument $ utilisateur */'Est-ce l'inharitance du modèle d'utilisateur original? Merci encore! – chris
Pour ajouter de nouvelles propriétés à l'une des vues, consultez le manuel de Femanger./** @var est seulement un typehint pour mon ide pour obtenir le code completiion pour l'utilisateur var $ –
Merci encore! J'ai ajouté les variables nécessaires en utilisant la méthode 'initializeView()'. En passant: il y a une autre discussion et une réponse détaillée sur ce sujet: [Extension de TYPO3 femanager] (https://stackoverflow.com/a/47848908/415353) – chris