1 pièce(s) jointe(s)
Syntax error lors de la mise en ligne du site
Bonjour,
J'ai un souci lors de la mise en ligne d'un site fait en PHP7.4 et symfony5
J'ai fais le site en local sans trop de problème, mais lors de la mise en ligne (chez un hébergeur gratuit. Je n'ai pas vraiment le choix) j'avais un problème de version suite au dépendance composeur.
L'hébergeur mutualisé n'accepte que le PHP7.0, php7.1, 7.2 et 7.3 donc j'ai changer mon WAMP et CLI, fait un "composer config platform-check false" et "composer dumpautoload", suite à ça lors de la migration sur le serveur je n'ai plus eu le message d'erreur sur les version php de mon projet et celui de l'hébergeur.
Mais maintenant j'ai un autre souci que je n'arrive pas à résoudre.
J'ai l'erreur suivante :
Citation:
syntax error, unexpected 'fn' (T_STRING), expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
En faisant des tests ça serait mon fichier "index.php" qui pose problème au niveau de $kernel->handle($request); car juste avant cette ligne j'arrive à afficher ma variable request mais le message apparais au moment où je passe dans $response = $kernel->handle($request);
fichier dans : monProjet/public/index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<?php
use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/vendor/autoload.php';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response); |
Mon fichier .htaccess
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule> |
Voici mon fichier log
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
[2021-04-22T23:40:07.494061+03:00] request.INFO: Matched route "show_all_article". {"route":"show_all_article","route_parameters":{"_route":"show_all_article","_controller":"App\\Controller\\ArticleController::ShowAllArticle"},"request_uri":"http://flevallis.orgfree.com/public/","method":"GET"} []
[2021-04-22T23:40:07.507601+03:00] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"main","authenticators":1} []
[2021-04-22T23:40:07.508019+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:07.508173+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:07.508241+03:00] php.WARNING: Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') {"exception":"[object] (ErrorException(code: 0): Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:07.508483+03:00] php.CRITICAL: Uncaught Error: Class 'App\Security\LoginFormAuthenticator' not found {"exception":"[object] (Error(code: 0): Class 'App\\Security\\LoginFormAuthenticator' not found at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php:20)"} []
[2021-04-22T23:40:08.667227+03:00] request.CRITICAL: Uncaught PHP Exception Symfony\Component\ErrorHandler\Error\ClassNotFoundError: "Attempted to load class "LoginFormAuthenticator" from namespace "App\Security". Did you forget a "use" statement for another namespace?" at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php line 20 {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\ClassNotFoundError(code: 0): Attempted to load class \"LoginFormAuthenticator\" from namespace \"App\\Security\".\nDid you forget a \"use\" statement for another namespace? at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php:20)"} []
[2021-04-22T23:40:08.669373+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:08.669609+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:08.669737+03:00] php.WARNING: Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') {"exception":"[object] (ErrorException(code: 0): Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} []
[2021-04-22T23:40:08.669866+03:00] php.CRITICAL: Uncaught Error: Class 'Twig\Loader\FilesystemLoader' not found {"exception":"[object] (Error(code: 0): Class 'Twig\\Loader\\FilesystemLoader' not found at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/get_Container_Private_TwigService.php:20)"} [] |
et mon fichier dans src/security/LoginFormAuthenticator.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
<?php
namespace App\Security;
use App\Entity\Users;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
use Symfony\Component\Security\Guard\PasswordAuthenticatedInterface;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class LoginFormAuthenticator extends AbstractFormLoginAuthenticator implements PasswordAuthenticatedInterface
{
use TargetPathTrait;
public const LOGIN_ROUTE = 'app_login';
private $entityManager;
private $urlGenerator;
private $csrfTokenManager;
private $passwordEncoder;
public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator, CsrfTokenManagerInterface $csrfTokenManager, UserPasswordEncoderInterface $passwordEncoder)
{
$this->entityManager = $entityManager;
$this->urlGenerator = $urlGenerator;
$this->csrfTokenManager = $csrfTokenManager;
$this->passwordEncoder = $passwordEncoder;
}
public function supports(Request $request)
{
return self::LOGIN_ROUTE === $request->attributes->get('_route')
&& $request->isMethod('POST');
}
public function getCredentials(Request $request)
{
$credentials = [
'email' => $request->request->get('email'),
'password' => $request->request->get('password'),
'csrf_token' => $request->request->get('_csrf_token'),
];
$request->getSession()->set(
Security::LAST_USERNAME,
$credentials['email']
);
return $credentials;
}
public function getUser($credentials, UserProviderInterface $userProvider)
{
$token = new CsrfToken('authenticate', $credentials['csrf_token']);
if (!$this->csrfTokenManager->isTokenValid($token)) {
throw new InvalidCsrfTokenException();
}
$user = $this->entityManager->getRepository(Users::class)->findOneBy(['email' => $credentials['email']]);
if (!$user) {
// fail authentication with a custom error
throw new CustomUserMessageAuthenticationException('Adresse mail ou mot de passe incorrect');
}
return $user;
}
public function checkCredentials($credentials, UserInterface $user)
{
return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
}
/**
* Used to upgrade (rehash) the user's password automatically over time.
*/
public function getPassword($credentials): ?string
{
return $credentials['password'];
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}
// For example :
return new RedirectResponse($this->urlGenerator->generate('show_all_article'));
// throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
}
protected function getLoginUrl()
{
return $this->urlGenerator->generate(self::LOGIN_ROUTE);
}
} |
Le site marche sans problème en local mais pas quand il est mis en ligne. J'ai ce fameux errorx syntax
Est-ce que quelqu'un aurait des pistes où je pourrais regarder ?
Merci d'avoir lu mon message.