Maison développement back-end PHP8 Mise à niveau vers PHP 8 à l'aide de Homebrew sur Mac

Mise à niveau vers PHP 8 à l'aide de Homebrew sur Mac

Nov 27, 2020 am 10:09 AM
PHP 8

Cet article est traduit de : https://stitcher.io/blog/php-8-upgrade-mac

Mise à niveau avec Homebrew

Assurez-vous d'abord que Brew est à jour :

brew update

Ensuite, mettez à niveau PHP :

brew upgrade php

Vérifiez la version actuelle en exécutant php -v :

php -v

Redémarrez Nginx ou Apache :

sudo nginx -s reload
sudo apachectl restart

et assurez-vous que votre serveur Web local utilise également PHP 8 en accédant au script suivant :

# index.php, accessible to your web server
phpinfo();

La version devrait afficher 8.0.x.

REMARQUE : Si vous utilisez Laravel Valet, veuillez continuer à lire, vous aurez besoin de quelques étapes supplémentaires pour que votre serveur Web fonctionne correctement.

Valet

Si vous utilisez Laravel Valet, vous devez effectuer les étapes suivantes pour le mettre à niveau :

composer global update

Maintenant exécutez l'installation avec voiturier :

valet install

Extensions

Les extensions PHP sont installées à l'aide de pecl. Personnellement j'utilise Imagick, Redis et Xdebug. Ils peuvent être installés comme ceci :

pecl install imagick
pecl install redis
pecl install xdebug

Vous pouvez exécuter pecl list pour voir quelles extensions sont installées :

pecl list
# Installed packages, channel pecl.php.net:
# =========================================
# Package Version State
# imagick 3.4.4   stable
# redis   5.1.1   stable
# xdebug  2.8.0   stable

Vous pouvez rechercher d'autres extensions en utilisant la recherche pecl :

pecl search pdf
# Retrieving data...0%
# ..
# Matched packages, channel pecl.php.net:
# =======================================
# Package Stable/(Latest) Local
# pdflib  4.1.2 (stable)        Creating PDF on the fly with the PDFlib library

install Après le nouveau package, assurez-vous de redémarrer le serveur Web :

sudo nginx -s reload
sudo apachectl restart

Si vous utilisez Laravel Valet, vous devez également le redémarrer.

valet restart

Assurez-vous que toutes les extensions sont installées et chargées correctement en vérifiant votre serveur Web PHP et l'installation de votre CLI :

php -i | grep redis
var_dump(extension_loaded('redis'));

Si vos extensions ne se chargent pas correctement, il existe deux solutions simples.

Tout d'abord, assurez-vous d'ajouter l'extension au bon fichier ini. Vous pouvez exécuter php --ini pour savoir quel fichier est chargé :

Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext-opcache.ini,
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini

Vérifiez maintenant le fichier ini :

extension="redis.so"
extension="imagick.so"
zend_extension="xdebug.so"

Notez que si vous testez une extension installée via la CLI, pas besoin pour redémarrer nginx, apache ou Valet lors de la modification des paramètres ini.

Si vous souhaitez mettre à jour à partir d'une ancienne version de PHP qui utilise également pecl pour installer des extensions, vous pouvez faire la deuxième chose. consiste à réinstaller chaque extension individuellement.

pecl uninstall imagick
pecl install imagick

Étape finale

Enfin, vous devez tester et mettre à niveau votre projet pour la compatibilité PHP 8.

Pour plus de fonctionnalités liées à PHP8, veuillez visiter la colonne spéciale PHP8 !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Oguri Cap Build Guide | Un joli Musume Derby
3 Il y a quelques semaines By Jack chen
Guide de construction d'Agnes Tachyon | Un joli Musume Derby
2 Il y a quelques semaines By Jack chen
Guide de construction de Grass Wonder | Uma musume joli derby
2 Il y a quelques semaines By Jack chen
Pic comment émoter
4 Il y a quelques semaines By Jack chen

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le type de retour statique dans PHP 8? Quel est le type de retour statique dans PHP 8? Jun 24, 2025 am 12:57 AM

TheStaticreTurnTypeInphp8MeanThemethoDisexPectedToreRurnanInstanceoftheClassit'sCalledon, y comprisanychildClass.1.EtenablesLaStaticBinding, assuranttheredvalueMatchestheLlingClass'Stype..com.ParedToselEl

Quels sont les arguments nommés dans PHP 8? Quels sont les arguments nommés dans PHP 8? Jun 19, 2025 pm 06:05 PM

NAMBALLAGES INSIMPHP8ALLOWPASSINGVALUESTOAFONCTIONNEURSPECIFICATIONS THEPARAMETERNAMEDSEADOFRELYINGORAMETERORDORDORDORDR

Que sont la promotion des propriétés du constructeur dans PHP 8? Que sont la promotion des propriétés du constructeur dans PHP 8? Jun 19, 2025 pm 06:45 PM

ConstructorPropertyPromotionInphp8AllowsAutomaticCreationandAsssignmentofClassproperties est en train de dire de la construction de l'apprustaire.InSteadofMumberyAssigingAproperTropertyInTeTheConstructor, DeveloperscanAddanAccessModifier (public, protégé, orprié) Totheparam

Que sont les types mixtes dans PHP 8? Que sont les types mixtes dans PHP 8? Jun 21, 2025 am 01:02 AM

Le type mixte de PHP8 permet des variables, des paramètres ou des valeurs de retour pour accepter tout type. 1. Le mixtes convient aux scénarios qui nécessitent une forte flexibilité, tels que le middleware, le traitement dynamique des données et l'intégration du code hérité; 2. Il est différent des types d'union car il couvre tous les types possibles, y compris les nouveaux types à l'avenir; 3. Soyez prudent lorsque vous les utilisez pour éviter d'affaiblir la sécurité des types, et il est recommandé d'expliquer les types attendus en conjonction avec PHPDOC. L'utilisation rationnelle de mixtes peut améliorer les capacités d'expression du code tout en conservant les avantages des invites de type.

Qu'est-ce que la compilation JIT (juste à temps) dans PHP 8? Qu'est-ce que la compilation JIT (juste à temps) dans PHP 8? Jun 20, 2025 am 12:57 AM

Jitinphp8 improveSperformanceBy compilantfrementexecutedcodeintomachinecoatTrutime.insteadoferpretingOpcodeachtime, jitidentieShototsectionofcode, compiltesthentonativemachinecode, cachesitforreuse, andrecestreptureveread.ithelpostimosti

Que sont les expressions de correspondance dans PHP 8? Que sont les expressions de correspondance dans PHP 8? Jun 21, 2025 am 01:03 AM

L'expression de correspondance de PHP8 fournit une cartographie conditionnelle plus propre par une comparaison stricte. 1. Utilisez une égalité stricte (===) pour éviter la conversion de type; 2. Aucune déclaration de rupture n'est requise pour empêcher la pénétration accidentelle; 3. La valeur de retour directe peut être attribuée aux variables; 4. Prise en charge des résultats de la fusion et du partage de la multi-conditions. Convient pour les scénarios d'entrée et de sortie précis de correspondance et de sortie, tels que le traitement du code d'état HTTP; Pas adapté aux contrôles de portée ou aux comparaisons lâches.

Quelles sont les améliorations des performances en PHP 8 par rapport à PHP 7? Quelles sont les améliorations des performances en PHP 8 par rapport à PHP 7? Jun 27, 2025 am 12:51 AM

L'amélioration des performances de PHP8 provient principalement du compilateur JIT nouvellement introduit et de l'optimisation du moteur Zend, mais les avantages dans les applications réelles varient selon le scénario. 1. Le compilateur JIT compile un peu de code dans le code machine à l'exécution, améliorant considérablement les performances des scripts CLI ou des API à long terme, mais a un effet limité dans les demandes Web de courte durée; 2. Opcache améliore et améliore les fonctions de mise en cache et de préchargement d'Opcode, réduisant les E / S de disque et l'analyse des frais généraux, en particulier pour les cadres tels que Laravel ou Symfony; 3. Optimisations internes multiples telles que les opérations de chaîne et de réseau plus efficaces, une utilisation de la mémoire plus petite, etc. Bien que chaque amélioration soit faible, elle s'accumule en petites quantités; 4. L'amélioration réelle des performances dépend du scénario d'application, PHP8 peut être rapide 10 dans les tâches à forte intensité informatique.

Quels sont les attributs (annotations) dans PHP 8? Quels sont les attributs (annotations) dans PHP 8? Jun 22, 2025 am 12:54 AM

Les attributs PHP8 ajoutent des métadonnées aux éléments de code grâce à des méthodes structurées. 1. Ils sont attachés au-dessus des classes, des méthodes, etc. en utilisant la syntaxe # [], telle que # [Route ('/ home')] pour définir les itinéraires; 2. Il est plus sûr que PHPDOC, avec la vérification de type et la vérification du temps de compilation; 3. Les attributs personnalisés doivent définir des classes et s'appliquer, tels que l'utilisation de ReflectionAttribute pour créer des attributs de journal LOGEXECUTION; 4. Couramment utilisé dans les cadres pour gérer le routage, la vérification, la cartographie ORM et d'autres tâches, améliorant la lisibilité du code et séparant les configurations logiques; 5. Il est accessible par réflexion, mais une utilisation excessive doit être évitée pour éviter d'affecter la clarté du code.

See all articles