12
votes

Espaces de noms dans PHP 5.2

J'ai fait peu de bande en utilisant des espaces de noms. Je l'ai dans mon ordinateur et je suis sur le point de le déplacer vers l'hébergement libre qui utilise PHP 5.2. Syntaxe surligneur pour PHP 5.2 les interprète comme des erreurs.

sont des espaces de noms pris en charge par PHP 5.2?

Si ce n'est pas là comment les utiliser avec de peu de modifications au code existant?


3 commentaires

Non. Lisez ce manuel mignon: php.net/manual/fr/language.namespaces.php


Bien que non pris en charge, vous pouvez bien sûr les supprimer. Comme cela se produit, il est venu récemment: Stackoverflow.com/Questtions/1836387/... - Je ne sais pas si vous avez demandé cela, ou si cela était vraiment à propos de la syntaxe mise en évidence?


Le préprocesseur PHP sonne bien. Mais j'utilise également des noms de classe variable qui ne sont pas traités avec ce script.


5 Réponses :


28
votes

Les espaces de noms ne sont pas pris en charge avant 5.3. Il n'y a pas vraiment un moyen de s'adapter pour eux en 5.2 malheureusement.


0 commentaires

1
votes

http://www.php.net/manual/fr/ langue.namespaces.radification.php

Les espaces de noms sont disponibles en PHP à partir de PHP 5.3.0.


0 commentaires

3
votes

Les espaces de noms sont disponibles en PHP à partir de PHP 5.3.0.

Source: http://www.php.net/manual/ fr / language.namespaces.radifation.php


0 commentaires

8
votes

Les espaces de noms ne sont disponibles que sur 5.3

au moins dans le cas des classes, vous pouvez utiliser la fonction class_exists pour vérifier si une classe a déjà été définie avec un nom similaire dans le global Espace de noms. Couplé avec la fonction __ autoload () , vous pouvez créer un alias universel et avoir la vérification du système pour les deux classes nommées par le nom d'origine ainsi que le nom avec une sorte d'identifiant supplémentaire préparé. J'utiliserai "NS" comme exemple. xxx

Assurez-vous simplement que le chemin requis est de savoir où vous gardez vos modèles. Vous pouvez également utiliser un dossier différent au lieu de l'alias.

De cette façon, toutes les classes en double peuvent être placées dans des fichiers distincts de l'exécution principale qui ne sont incluses que si elles n'existent pas dans le monde. Bien que cela ne corrige pas strictement le problème de devoir renommer physiquement les classes, cela vous permettra de mettre vos définitions dans différents répertoires à des fins de versement en mode de versement etc.


0 commentaires

0
votes

ive vient de contourner ce problème, j'ai développé un script de téléchargement d'image moi-même et a ajouté un code tiers pour aider le traitement de l'image (recadrage), mais ils utilisent des espaces de noms, fonctionnent bien sur ma machine Develoment, mais lorsque j'ai téléchargé sur le serveur Live. Je reçois une erreur d'analyse.

Heureusement, mon hôte prend en charge PHP 5.3 et 5.4, alors que j'ai demandé de la modifier à 5,3 pour moi, je espère que je résoudra les problèmes que je possède, en supprimant simplement les espaces de noms rendus le script échouer :(

Paul


0 commentaires