Remi's RPM repository - Blog - Mot-clé - PHP-SIGRemi's RPM repository blog Information about RPM PHP Fedora RHEL and CentOS2024-03-28T14:46:28+01:00Remi Colleturn:md5:04ca934806743f3bda12513f927cafa9DotclearPHP en route vers la sortie de la version 8.1.0urn:md5:e78a637d7ad25ef3333e54c70e0c9cb72021-09-02T17:38:00+02:002021-11-25T19:57:37+01:00RemiArchivesBetaPHP-SIGplanetlibreplanetphpfrRPM<p>La version <a href="https://www.php.net/archive/2021.php#2021-09-02-1">8.1.0 Release Candidate 1</a> a été publiée. C'est maintenant la phase de stabilisation qui commence pour les développeurs, et de test pour les utilisateurs.</p>
<p>Les RPM sont disponibles dans le dépôt <strong>remi-php81</strong> pour <strong>Fedora </strong>≥<strong> 33</strong> et et <strong>Enterprise Linux </strong>≥<strong> 7</strong> (RHEL, CentOS) ou dans le stream <strong>php:remi-8.1</strong> ainsi qu'en <em>Software Collection</em> dans le dépôt <strong>remi-safe</strong> (ou <strong>remi</strong> pour Fedora).</p>
<p> </p> <p><img alt="emblem-important-4-24.png" class="media" src="https://blog.remirepo.net/public/icons/emblem-important-4-24.png" style="float: left; margin: 0 1em 0 0;" title="" />Le dépôt contient actuellement des versions en cours de <strong>développement</strong> qui ne sont pas destinées à être utilisées en production.</p>
<p>Lire aussi : <a class="ref-post" href="https://blog.remirepo.net/post/2021/06/11/PHP-8.1-en-Software-Collection">PHP 8.1 en Software Collection</a></p>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Installation : voir la <a href="https://blog.remirepo.net/pages/Config">Configuration du dépôt</a> et choisir le mode d'installation.</p>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>8.1</strong> avec les modules (le plus <strong>simple</strong> pour Fedora et EL-8)<strong> :</strong></p>
<pre>
dnf module reset php
dnf module install php:remi-8.1
dnf update
</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>8.1</strong> avec le dépôt (le plus <strong>simple</strong> pour EL-7)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php81
yum update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2021/06/11/PHP-8.1-en-Software-Collection">Software Collection</a> de PHP<strong> 8.1</strong> (<strong>recommandée</strong> pour les tests) :</p>
<pre>
yum install php81</pre>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /><strong>À noter</strong> :</p>
<ul>
<li>la version EL8 est construite avec RHEL-<strong>8.4</strong></li>
<li>la version EL7 est construite avec RHEL-<strong>7.9</strong></li>
<li>beaucoup d'extensions sont aussi disponibles, voir la page <a href="https://blog.remirepo.net/pages/PECL-extensions-RPM-status">PHP extension RPM status</a> and le suivi sur <a href="https://github.com/remicollet/remirepo/issues/177">PHP version 8.1</a></li>
<li>suivre les commentaires pour les mise à jour jusqu'à la version finale</li>
<li>devrait être proposée pour Fedora 36</li>
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" /><strong>Informations</strong>, lire :</p>
<ul><!-- <li><a href="http://php.net/manual/fr/migration70.php">Migration de PHP 5.6.x à PHP 7.0.x</a></li> -->
<li><a href="https://raw.githubusercontent.com/php/php-src/PHP-8.1/UPGRADING">UPGRADING</a></li>
<li><a href="https://raw.githubusercontent.com/php/php-src/PHP-8.1/UPGRADING.INTERNALS">UPGRADING.INTERNALS</a></li>
</ul>
<p align="center">Paquets de <strong>base</strong> (php)<br />
<img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=8.1.0~RC1&lang=fr" style="margin: 1em auto; display: block;" /></p>
<p align="center"><strong>Software Collections </strong>(php81)<br />
<img alt="" src="https://blog.remirepo.net/downcpt.php?name=php81-php-common&version=8.1.0~rc1&lang=fr" style="margin: 1em auto; display: block;" /></p>PHP version 7.3.29, 7.4.21 et 8.0.8urn:md5:a1c5e3ffa65ed6c630ce93c7dbb6ce532021-07-01T17:26:00+02:002021-08-26T16:18:10+02:00RemiArchivesPHP-SIGRPM<p>Les RPM de <strong>PHP version 8.0.8</strong> sont disponibles dans le dépôt <strong>remi-php80</strong> pour <strong>Fedora</strong> 32-34 et <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<p>Les RPM de <strong>PHP version 7.4.21</strong> sont disponibles dans le dépôt <strong>remi</strong> pour <strong>Fedora</strong> 32-34 et dans le dépôt <strong>remi-php74</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<!--
-->
<p>Les RPM de <strong>PHP version 7.3.29</strong> sont disponibles dans le dépôt <strong>remi-php73</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<!--
<p><img alt="emblem-notice-24.png" ref-post="" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Pas de correctifs de sécurité ce mois ci, donc pas de mise à jour de la <a class="ref-post" href="https://blog.remirepo.net/post/2021/04/30/PHP-version-7.3.28-7.4.18-et-8.0.5">version 7.3.28</a>.</p>
-->
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /> <a class="ref-post" href="https://blog.remirepo.net/post/2020/12/01/PHP-7.2-est-mort">PHP version 7.2</a> a atteint sa fin de vie et n'est plus maintenu par le <a href="http://php.net/supported-versions.php">projet PHP</a>.</p>
<p>Ces versions sont aussi disponibles en <em>Software Collections</em> dans le dépôt <strong>remi-safe</strong> et en <strong>module</strong> pour Fedora 32-34 et EL-8.</p>
<p><img alt="security-medium-2-24.png" src="https://blog.remirepo.net/public/icons/security-medium-2-32.png" style="float: left; margin: 0 1em 0 0;" />Ces versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.</p> <!--
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" />La version <strong>7.2</strong> étant proche de sa <strong>fin de vie</strong>, en décembre 2020, une mise à jour vers une version supérieure est conseillée.</p>
-->
<p>Annonces des versions :</p>
<ul>
<li><a href="http://www.php.net/releases/8_0_8.php">PHP 8.0.8 Release Annoucement</a></li>
<li><a href="http://www.php.net/releases/7_4_21.php">PHP 7.4.21 Release Annoucement</a></li>
<!--
-->
<li><a href="http://www.php.net/releases/7_3_29.php">PHP 7.3.29 Release Annoucement</a></li>
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Installation : voir <a href="http://rpms.remirepo.net/wizard/">l'assistant de configuration</a> et choisir la version et le mode d'installation.</p>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>8.0</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php80
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module reset php
dnf module enable php:remi-8.0
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2020/04/10/PHP-8.0-en-Software-Collection">Software Collection</a> de PHP <strong>8.0</strong></p>
<pre>
yum install php80</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.4</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php74
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.4
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2019/05/22/PHP-7.4-en-Software-Collection">Software Collection</a> de PHP <strong>7.4</strong></p>
<pre>
yum install php74</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.3</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php73
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.3
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2018/06/08/PHP-7.3-en-Software-Collection">Software Collection</a> de PHP <strong>7.3</strong></p>
<pre>
yum install php73</pre>
<p>Et bientôt dans les mises à jour officielles:</p>
<!--
-->
<ul>
<li>Fedora <strong>Rawhide</strong> fournit désormais PHP version <strong>8.0.8</strong></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-d867b595d1">Fedora 34 - PHP 7.4.21</a></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-172c8bd11d">Fedora 33 - PHP 7.4.21</a></li>
</ul>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /><strong>À noter</strong> :</p>
<ul>
<li>les paquets EL-8 sont construits avec RHEL-<strong>8.4</strong></li>
<li>les paquets EL-7 sont construits avec RHEL-<strong>7.9</strong></li>
<li>les paquets EL-7 utilisent désormais <strong>libicu65 </strong>(version <strong>65.1</strong>)</li>
<li>les paquets EL utilisent désormais <strong>oniguruma5php</strong> (version <strong>6.9.7</strong>, au lieu de la version ancienne du système)</li>
<li>l'extension <strong>oci8</strong> utilise désormais le client <strong>Oracle version 21.1</strong></li>
<li>beaucoup d' extensions sont aussi disponible, voir <a href="https://blog.remirepo.net/pages/PECL-extensions-RPM-status">PHP extensions RPM status (from PECL and other sources)</a> page</li>
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="floaf<pt: left; margin: 0 1em 0 0;" /><strong>Informations</strong>, lire :</p>
<ul>
<li><a href="http://php.net/manual/fr/migration73.php" hreflang="fr">Migration de PHP 7.2.x à PHP 7.3.x</a></li>
<li><a href="http://php.net/manual/fr/migration74.php" hreflang="fr">Migration de PHP 7.3.x à PHP 7.4.x</a></li>
<li><a href="http://php.net/manual/fr/migration80.php" hreflang="fr">Migration de PHP 7.4.x à PHP 8.0.x</a></li>
</ul>
<p align="center">Paquets de <strong>base</strong> (php)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=8.0.8&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.4.21&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
-->
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.3.29&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p align="center"><strong>Software Collections </strong>(php73 / php74 / php80)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php80-php-common&version=8.0.8&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php74-php-common&version=7.4.21&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
-->
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php73-php-common&version=7.3.29&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>PHP version 7.4.20 et 8.0.7urn:md5:4c202345c42685692d2e25199af9e9e32021-06-04T07:22:00+02:002021-07-01T16:28:21+02:00RemiArchivesPHP-SIGRPM<p>Les RPM de <strong>PHP version 8.0.7</strong> sont disponibles dans le dépôt <strong>remi-php80</strong> pour <strong>Fedora</strong> 32-34 et <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<p>Les RPM de <strong>PHP version 7.4.20</strong> sont disponibles dans le dépôt <strong>remi</strong> pour <strong>Fedora</strong> 32-34 et dans le dépôt <strong>remi-php74</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<!--
<p>Les RPM de <strong>PHP version 7.3.28</strong> sont disponibles dans le dépôt <strong>remi-php73</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
-->
<p><img alt="emblem-notice-24.png" ref-post="" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Pas de correctifs de sécurité ce mois ci, donc pas de mise à jour de la <a class="ref-post" href="https://blog.remirepo.net/post/2021/04/30/PHP-version-7.3.28-7.4.18-et-8.0.5">version 7.3.28</a>.</p>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /> <a class="ref-post" href="https://blog.remirepo.net/post/2020/12/01/PHP-7.2-est-mort">PHP version 7.2</a> a atteint sa fin de vie et n'est plus maintenu par le <a href="http://php.net/supported-versions.php">projet PHP</a>.</p>
<p>Ces versions sont aussi disponibles en <em>Software Collections</em> dans le dépôt <strong>remi-safe</strong> et en <strong>module</strong> pour Fedora 32-34 et EL-8.</p>
<!--
<p><img alt="security-medium-2-24.png" src="https://blog.remirepo.net/public/icons/security-medium-2-32.png" style="float: left; margin: 0 1em 0 0;" />Ces versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.</p>
--> <!--
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" />La version <strong>7.2</strong> étant proche de sa <strong>fin de vie</strong>, en décembre 2020, une mise à jour vers une version supérieure est conseillée.</p>
-->
<p>Annonces des versions :</p>
<ul>
<li><a href="http://www.php.net/releases/8_0_7.php">PHP 8.0.7 Release Annoucement</a></li>
<li><a href="http://www.php.net/releases/7_4_20.php">PHP 7.4.20 Release Annoucement</a></li>
<!--
<li><a href="http://www.php.net/releases/7_3_28.php">PHP 7.3.28 Release Annoucement</a></li>
-->
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Installation : voir <a href="http://rpms.remirepo.net/wizard/">l'assistant de configuration</a> et choisir la version et le mode d'installation.</p>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>8.0</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php80
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module reset php
dnf module enable php:remi-8.0
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2020/04/10/PHP-8.0-en-Software-Collection">Software Collection</a> de PHP <strong>8.0</strong></p>
<pre>
yum install php80</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.4</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php74
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.4
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2019/05/22/PHP-7.4-en-Software-Collection">Software Collection</a> de PHP <strong>7.4</strong></p>
<pre>
yum install php74</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.3</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php73
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.3
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2018/06/08/PHP-7.3-en-Software-Collection">Software Collection</a> de PHP <strong>7.3</strong></p>
<pre>
yum install php73</pre>
<p>Et bientôt dans les mises à jour officielles:</p>
<!--
-->
<ul>
<li>Fedora <strong>Rawhide</strong> fournit désormais PHP version <strong>8.0.7</strong></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-856aeec793">Fedora 34 - PHP 7.4.20</a></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-09af51fc26">Fedora 33 - PHP 7.4.20</a></li>
</ul>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /><strong>À noter</strong> :</p>
<ul>
<li>les paquets EL-8 sont construits avec RHEL-<strong>8.3</strong> (les prochains utiliseront 8.4)</li>
<li>les paquets EL-7 sont construits avec RHEL-<strong>7.9</strong></li>
<li>les paquets EL-7 utilisent désormais <strong>libicu65 </strong>(version <strong>65.1</strong>)</li>
<li>les paquets EL utilisent désormais <strong>oniguruma5php</strong> (version <strong>6.9.7</strong>, au lieu de la version ancienne du système)</li>
<li>l'extension <strong>oci8</strong> utilise désormais le client <strong>Oracle version 21.1</strong></li>
<li>beaucoup d' extensions sont aussi disponible, voir <a href="https://blog.remirepo.net/pages/PECL-extensions-RPM-status">PHP extensions RPM status (from PECL and other sources)</a> page</li>
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="floaf<pt: left; margin: 0 1em 0 0;" /><strong>Informations</strong>, lire :</p>
<ul>
<li><a href="http://php.net/manual/fr/migration73.php" hreflang="fr">Migration de PHP 7.2.x à PHP 7.3.x</a></li>
<li><a href="http://php.net/manual/fr/migration74.php" hreflang="fr">Migration de PHP 7.3.x à PHP 7.4.x</a></li>
<li><a href="http://php.net/manual/fr/migration80.php" hreflang="fr">Migration de PHP 7.4.x à PHP 8.0.x</a></li>
</ul>
<p align="center">Paquets de <strong>base</strong> (php)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=8.0.7&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.4.20&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.3.28&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
-->
<p align="center"><strong>Software Collections </strong>(php73 / php74 / php80)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php80-php-common&version=8.0.7&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php74-php-common&version=7.4.20&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php73-php-common&version=7.3.28&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
-->PHP version 7.4.19 et 8.0.6urn:md5:3c258bcf2b21cde8ec7b1894fec5a5892021-05-08T07:44:00+02:002021-06-04T06:23:37+02:00RemiArchivesPHP-SIGRPM<p>Les RPM de <strong>PHP version 8.0.6</strong> sont disponibles dans le dépôt <strong>remi-php80</strong> pour <strong>Fedora</strong> 32-34 et <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<p>Les RPM de <strong>PHP version 7.4.19</strong> sont disponibles dans le dépôt <strong>remi</strong> pour <strong>Fedora</strong> 32-34 et dans le dépôt <strong>remi-php74</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
<!--
<p>Les RPM de <strong>PHP version 7.3.28</strong> sont disponibles dans le dépôt <strong>remi-php73</strong> pour <strong>Enterprise Linux </strong> (RHEL, CentOS)<em>.</em></p>
-->
<p><img alt="emblem-notice-24.png" ref-post="" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Pas de correctifs de sécurité ce mois ci, donc pas de mise à jour de la <a class="ref-post" href="https://blog.remirepo.net/post/2021/04/30/PHP-version-7.3.28-7.4.18-et-8.0.5">version 7.3.28</a>.</p>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /> <a class="ref-post" href="https://blog.remirepo.net/post/2020/12/01/PHP-7.2-est-mort">PHP version 7.2</a> a atteint sa fin de vie et n'est plus maintenu par le <a href="http://php.net/supported-versions.php">projet PHP</a>.</p>
<p>Ces versions sont aussi disponibles en <em>Software Collections</em> dans le dépôt <strong>remi-safe</strong> et en <strong>module</strong> pour Fedora 32-34 et EL-8.</p>
<!--
<p><img alt="security-medium-2-24.png" src="https://blog.remirepo.net/public/icons/security-medium-2-32.png" style="float: left; margin: 0 1em 0 0;" />Ces versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.</p>
--> <!--
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" />La version <strong>7.2</strong> étant proche de sa <strong>fin de vie</strong>, en décembre 2020, une mise à jour vers une version supérieure est conseillée.</p>
-->
<p>Annonces des versions :</p>
<ul>
<li><a href="http://www.php.net/releases/8_0_6.php">PHP 8.0.6 Release Annoucement</a></li>
<li><a href="http://www.php.net/releases/7_4_19.php">PHP 7.4.19 Release Annoucement</a></li>
<!--
<li><a href="http://www.php.net/releases/7_3_28.php">PHP 7.3.28 Release Annoucement</a></li>
-->
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="float: left; margin: 0 1em 0 0;" />Installation : voir <a href="http://rpms.remirepo.net/wizard/">l'assistant de configuration</a> et choisir la version et le mode d'installation.</p>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>8.0</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php80
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module reset php
dnf module enable php:remi-8.0
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2020/04/10/PHP-8.0-en-Software-Collection">Software Collection</a> de PHP <strong>8.0</strong></p>
<pre>
yum install php80</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.4</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php74
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.4
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2019/05/22/PHP-7.4-en-Software-Collection">Software Collection</a> de PHP <strong>7.4</strong></p>
<pre>
yum install php74</pre>
<p><strong>Remplacement</strong> du PHP par défaut du système par la version <strong>7.3</strong> (le plus <strong>simple</strong>)<strong> :</strong></p>
<pre>
yum-config-manager --enable remi-php73
yum update</pre>
<p>ou, en utilisant le <strong>module</strong> (Fedora et EL-8) :</p>
<pre>
dnf module enable php:remi-7.3
dnf update php\*</pre>
<p><strong>Installation en parallèle</strong>, en <a class="ref-post" href="https://blog.remirepo.net/post/2018/06/08/PHP-7.3-en-Software-Collection">Software Collection</a> de PHP <strong>7.3</strong></p>
<pre>
yum install php73</pre>
<p>Et bientôt dans les mises à jour officielles:</p>
<!--
-->
<ul>
<li>Fedora <strong>Rawhide</strong> fournit désormais PHP version <strong>8.0.6</strong></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-eab9e0e415">Fedora 34 - PHP 7.4.19</a></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-6f34b7c382">Fedora 33 - PHP 7.4.19</a></li>
<li><a href="https://bodhi.fedoraproject.org/updates/FEDORA-2021-3f9e87aaa4">Fedora 32 - PHP 7.4.19</a></li>
</ul>
<p><img alt="emblem-important-2-24.png" src="https://blog.remirepo.net/public/icons/emblem-important-2-24.png" style="float: left; margin: 0 1em 0 0;" /><strong>À noter</strong> :</p>
<ul>
<li>les paquets EL-8 sont construits avec RHEL-<strong>8.3</strong></li>
<li>les paquets EL-7 sont construits avec RHEL-<strong>7.9</strong></li>
<li>les paquets EL-7 utilisent désormais <strong>libicu65 </strong>(version <strong>65.1</strong>)</li>
<li>les paquets EL utilisent désormais <strong>oniguruma5php</strong> (version <strong>6.9.5</strong>, au lieu de la version ancienne du système)</li>
<li>l'extension <strong>oci8</strong> utilise désormais le client <strong>Oracle version 21.1</strong></li>
<li>beaucoup d' extensions sont aussi disponible, voir <a href="https://blog.remirepo.net/pages/PECL-extensions-RPM-status">PHP extensions RPM status (from PECL and other sources)</a> page</li>
</ul>
<p><img alt="emblem-notice-24.png" src="https://blog.remirepo.net/public/icons/emblem-notice-24.png" style="floaf<pt: left; margin: 0 1em 0 0;" /><strong>Informations</strong>, lire :</p>
<ul>
<li><a href="http://php.net/manual/fr/migration73.php" hreflang="fr">Migration de PHP 7.2.x à PHP 7.3.x</a></li>
<li><a href="http://php.net/manual/fr/migration74.php" hreflang="fr">Migration de PHP 7.3.x à PHP 7.4.x</a></li>
<li><a href="http://php.net/manual/fr/migration80.php" hreflang="fr">Migration de PHP 7.4.x à PHP 8.0.x</a></li>
</ul>
<p align="center">Paquets de <strong>base</strong> (php)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=8.0.6&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.4.19&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php-common&version=7.3.28&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
-->
<p align="center"><strong>Software Collections </strong>(php73 / php74 / php80)</p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php80-php-common&version=8.0.6&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<p><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php74-php-common&version=7.4.19&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
<!--
<p align="center"><img alt="" src="https://blog.remirepo.net/downcpt.php?name=php73-php-common&version=7.3.28&lang=fr&release=1" style="margin: 1em auto; display: block;" /></p>
-->PHP SIG - Autoloaderurn:md5:3674b8aff17ec17f45fec6dd6cfe77162015-06-30T15:01:00+02:002015-06-30T18:33:53+02:00RemiDéveloppementFedorapackagingPHPPHP-SIG<p>The <a href="https://fedoraproject.org/wiki/SIGs/PHP" hreflang="en">Fedora PHP SIG</a> (Special Interest Group) is back / working.</p>
<p>Here is a quick presentation about how to handle PHP autoloader in packaging.</p>
<p> </p> <p>See : <a href="https://fedoraproject.org/wiki/SIGs/PHP/PackagingTips#Autoloader">PHP SIG / Packaging Tips / Autoloader</a></p>
<h2>Common design: <strong>consumer autoloader</strong></h2>
<p>It is one of the most commonly used solution to implement autoloader in application, and in packaging. The application provides an autoloader which take care of all its dependencies. So it the application need A and B, if B need C, you need to manage A + B + C in autoloader.</p>
<p><strong>Problem</strong>: is B change in dependency from C to D, your autoloader need to be fixed, and your application is probably broken.</p>
<p>This is the solution implemented in <strong>composer</strong>, but it only works because every library is bundled, and autoloader is generated according to the list of installed components, at installation time.</p>
<p>In a <strong>perfect world</strong>, everything will be <a href="http://www.php-fig.org/psr/psr-0/">PSR-0</a> / <a href="http://www.php-fig.org/psr/psr-4/">PSR-4</a> compliant, with an clean namespace, and a very simple autoloader will be able to manage everything installed in the system tree (/usr/share/php). But, no luck, perfection doesn't exists.</p>
<h2>New design: <strong>provider</strong> <strong>autoloader</strong></h2>
<p>The idea is to provide an autoloader for each library (which will consume autoloader of its dependencies).</p>
<p>So it the application need A and B, you only need to include A + B autoloaders in the application one (and B autoloader will requires C or D). Exactly as the RPM world, you don't have to take care of dependencies tree.</p>
<h2>Improvment: <strong>shared autoloader</strong></h2>
<p>When a lot of dependencies are used by an application, having a huge stack of autoloaders can be a bootleneck for performance.</p>
<p>So the idea is to use a single autoloader, shared and configured by each library.</p>
<p>Here is an example:</p>
<pre>
<?php
if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
require_once '%{_datadir}/php/Symfony/Component/ClassLoader/ClassLoader.php';
}
$fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
$fedoraClassLoader->register();
}
// This library
$fedoraClassLoader->addPrefix('Foo\\Bar\\', dirname(dirname(__DIR__)));
// Another library (dependency)
require_once '/usr/share/php/Foo/Baz/autoload.php';
</pre>
<p>If Foo/Baz autoloader use the same implementation, the single instance ($fedoraClassLoader) will be shared.</p>
<p>Initially we start using an instance of <a href="http://symfony.com/">Symfony</a> <em>UniversalClassLoader</em>, but as it is deprecated in Symfony 2.7, we switched to the more simple <em><a href="http://symfony.com/doc/current/components/class_loader/introduction.html">ClassLoader</a></em>.</p>
<p>I think <em>UniversalClassLoader</em> was a better choice, behaviors are really different:</p>
<ul>
<li>With <em>ClassLoader</em>, the first path added will have priority, with<em> UniversalClassLoader</em> the last path will have priority (and the order can be very important in some stack, with circular dependencies)</li>
<li>With <em>ClassLoader</em>, there is no check to avoid duplicated path for a given prefix (I've tried to fix this, see <a href="https://github.com/symfony/ClassLoader/pull/7">PR #7</a>, waiting for upstream feedback)</li>
<li>With <em>ClassLoader</em>, you can only add "prefix" (no distinction between prefix, namespace, PSR-0 or PSR-4 whe).</li>
</ul>
<p><strong>Notice</strong>: it probably only make sense to use this Symfony component when some other Symfony components are already in the dependency tree. If you don't want this dependency on Symfony, you can write your own autoloader, use the Zend Framework autoloader, or a simple <em>classmap</em> generated by <strong>phpab</strong> (<a href="https://github.com/theseer/Autoload">theseer/autoload</a>).</p>
<p><strong>More examples</strong>, see the phpunit, phpcompatinfo or phpspec packages, which use and share some Symfony, Doctrine and other components, and mostly implement this new way.</p>
<p><strong>Feedback</strong>: want to dicuss about PHP packaging, give feedback about this, join the <a href="https://admin.fedoraproject.org/mailman/listinfo/php-devel">PHP SIG Mailing list</a>!</p>
<p><strong>Great Thanks</strong> to <strong>Shawn Iwinski</strong> for his work on this feature, his tests, and lot of valuable discussions.</p>