Commit: f2407335ed9f1156a8428429342211db98bb4311 Author: George Peter Banyard <girg...@php.net> Thu, 26 Nov 2020 14:34:38 +0000 Parents: 9a8f7c6e54172644e284357bcaf0779e97f20664 Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=f2407335ed9f1156a8428429342211db98bb4311 Log: French translation of the PHP 8 announcement page Changed paths: M include/layout.inc A releases/8.0/fr.php
diff --git a/include/layout.inc b/include/layout.inc index 4c82a9a08..e9cededab 100644 --- a/include/layout.inc +++ b/include/layout.inc @@ -712,6 +712,7 @@ function release_language_chooser($currentlang) { 'en' => 'English', 'pt_BR' => 'Brazilian Portuguese', 'de' => 'German', + 'fr' => 'French', 'ru' => 'Russian', ); diff --git a/releases/8.0/fr.php b/releases/8.0/fr.php new file mode 100644 index 000000000..6cfd85ec6 --- /dev/null +++ b/releases/8.0/fr.php @@ -0,0 +1,523 @@ +<?php +$_SERVER['BASE_PAGE'] = 'releases/8.0/en.php'; +include_once __DIR__ . '/../../include/prepend.inc'; + +if (($LANG !== 'fr') && file_exists(__DIR__ . '/' . basename($LANG) . '.php')) { + mirror_redirect('/releases/8.0/' . urlencode($LANG) . '.php?lang=' . urlencode($LANG)); +} + +$meta_image_path = $MYSITE . 'images/php8/php_8_released.png'; +$meta_description = "PHP 8.0 est une mise à jour majeure du langage PHP. Elle contient beaucoup de nouvelle fonctionnalités et d'optimisations, incluant les arguments nommées, les types d'union, attributs, promotion de propriétés de constructeur, l'expression match, l'opérateur nullsafe, JIT (Compilation à la Volée), et des améliorations dans le système de typage, la gestion d'erreur, et de cohérence."; +site_header("Annonce de la Sortie de PHP 8.0.0", array( + "current" => "php8", + 'css' => array('php8.css'), + 'meta_tags' => <<<META +<meta name="twitter:card" content="summary_large_image" /> +<meta name="twitter:site" content="@official_php" /> +<meta name="twitter:title" content="PHP 8.0 Released" /> +<meta name="twitter:description" content="{$meta_description}" /> +<meta name="twitter:creator" content="@official_php" /> +<meta name="twitter:image:src" content="{$meta_image_path}" /> + +<meta itemprop="name" content="PHP 8.0 Released" /> +<meta itemprop="description" content="{$meta_description}" /> +<meta itemprop="image" content="{$meta_image_path}" /> + +<meta property="og:image" content="{$meta_image_path}" /> +<meta property="og:description" content="{$meta_description}" /> +META +)); +?> +<section class="php8-section php8-section_dark php8-section_header center"> + <div class="page-tools"> + <div class="change-language"> + <?php echo release_language_chooser($LANG); ?> + </div> + </div> + <div class="php8-section__content"> + <div class="php8-logo"> + <img src="/images/php8/logo_php8.svg" alt="php8" height="126" width="343"> + </div> + <div class="php8-title">Released!</div> + <div class="php8-subtitle"> + PHP 8.0 est une mise à jour majeure du langage PHP.<br class="display-none-md"> + Elle contient beaucoup de nouvelle fonctionnalités et d'optimisations, incluant les arguments nommées, + les types d'union, attributs, promotion de propriétés de constructeur, l'expression match, l'opérateur + nullsafe, JIT (Compilation à la Volée), et des améliorations dans le système de typage, la gestion + d'erreur, et de cohérence. + </div> + <div class="php8-button-wrapper center"> + <a class="php8-button php8-button_light" href="/downloads">Migrez à PHP 8 maintenant!</a> + </div> + </div> +</section> + +<section class="php8-section center"> + <div class="php8-compare"> + <h2 class="php8-h2" id="named-arguments"> + Arguments nommées + <a class="php8-rfc" href="https://wiki.php.net/rfc/named_params">RFC</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, \'UTF-8\', false);' + );?> + </div> + + + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'htmlspecialchars($string, double_encode: false);' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <ul> + <li>Spécifiez uniquement les paramètres requis, omettant ceux optionnels.</li> + <li>Les arguments sont indépendant de l'ordre et auto-documenté.</li> + </ul> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="attributes"> + Attributs + <a class="php8-rfc" href="https://wiki.php.net/rfc/attributes_v2">RFC</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '/** +* @Route("/api/posts/{id}", methods={"GET", "HEAD"}) +*/ +class User +{' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '#[Route("/api/posts/{id}", methods: ["GET", "HEAD"])] +class User +{' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p>Au lieux d'annotations PHPDoc, vous pouvez désormais utiliser les métadonnées structurés avec la syntaxe native de PHP.</p> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="constructor-property-promotion"> + Promotion de propriétés de constructeur + <a class="php8-rfc" href="https://wiki.php.net/rfc/constructor_promotion">RFC</a> <a class="php8-rfc" href="/manual/fr/language.oop5.decon.php#language.oop5.decon.constructor.promotion">Doc</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'class Point { + public float $x; + public float $y; + public float $z; + + public function __construct( + float $x = 0.0, + float $y = 0.0, + float $z = 0.0, + ) { + $this->x = $x; + $this->y = $y; + $this->z = $z; + } +}' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'class Point { + public function __construct( + public float $x = 0.0, + public float $y = 0.0, + public float $z = 0.0, + ) {} +}' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p>Moins de code redondant pour définir et initialiser les propriétés.</p> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="union-types"> + Types d'union + <a class="php8-rfc" href="https://wiki.php.net/rfc/union_types_v2">RFC</a> <a class="php8-rfc" href="/manual/fr/language.types.declarations.php#language.types.declarations.union">Doc</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'class Number { + /** @var int|float */ + private $number; + + /** + * @param float|int $number + */ + public function __construct($number) { + $this->number = $number; + } +} + +new Number(\'NaN\'); // Ok' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'class Number { + public function __construct( + private int|float $number + ) {} +} + +new Number(\'NaN\'); // TypeError' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p> + Au lieux d'annotation PHPDoc pour une combinaison de type, vous pouvez utiliser les déclarations de types + d'union native qui sont validées lors de l'exécution. + </p> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="match-expression"> + Expression match + <a class="php8-rfc" href="https://wiki.php.net/rfc/match_expression_v2">RFC</a> <a class="php8-rfc" href="/manual/fr/control-structures.match.php">Doc</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'switch (8.0) { + case \'8.0\': + $result = "Oh no!"; + break; + case 8.0: + $result = "This is what I expected"; + break; +} +echo $result; +//> Oh no!' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'echo match (8.0) { + \'8.0\' => "Oh no!", + 8.0 => "This is what I expected", +}; +//> This is what I expected' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p>La nouvelle instruction match est similaire à switch et a les fonctionnalités suivantes :</p> + <ul> + <li>Match est une expression, signifiant que son résultat peut être enregistré dans une variable ou retourné.</li> + <li>Les branches de match supporte uniquement les expressions d'une seule ligne, et n'a pas besoin d'une déclaration break;.</li> + <li>Match fait des comparaisons strictes.</li> + </ul> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="nullsafe-operator"> + Opérateur Nullsafe + <a class="php8-rfc" href="https://wiki.php.net/rfc/nullsafe_operator">RFC</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '$country = null; + +if ($session !== null) { + $user = $session->user; + + if ($user !== null) { + $address = $user->getAddress(); + + if ($address !== null) { + $country = $address->country; + } + } +}' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '$country = $session?->user?->getAddress()?->country;' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p> + Au lieux de faire des vérifications conditionnelles de nul, vous pouvez utilisé une chaîne d'appel + avec le nouvel opérateur nullsafe. Qui lorsque l'évaluation d'un élément de la chaîne échoue, l'exécution + de la chaîne complète est terminé et la chaîne entière évalue à null. + </p> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="saner-string-to-number-comparisons"> + Comparaisons entre les chaînes de caractères et les nombres plus saines + <a class="php8-rfc" href="https://wiki.php.net/rfc/string_to_number_comparison">RFC</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '0 == \'foobar\' // true' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + '0 == \'foobar\' // false' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p> + Lors de la comparaison avec une chaîne numérique, PHP 8 utilisé une comparaison de nombre. + Sinon, il convertie le nombre à une chaîne de caractère et utilise une comparaison de chaîne de caractères. + </p> + </div> + </div> + + <div class="php8-compare"> + <h2 class="php8-h2" id="consistent-type-errors-for-internal-functions"> + Erreurs de type cohérent pour les fonctions internes + <a class="php8-rfc" href="https://wiki.php.net/rfc/consistent_type_errors">RFC</a> + </h2> + <div class="php8-compare__main"> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label">PHP 7</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'strlen([]); // Warning: strlen() expects parameter 1 to be string, array given + +array_chunk([], -1); // Warning: array_chunk(): Size parameter expected to be greater than 0' + );?> + </div> + </div> + <div class="php8-compare__arrow"></div> + <div class="php8-compare__block example-contents"> + <div class="php8-compare__label php8-compare__label_new">PHP 8</div> + <div class="php8-code phpcode"> + <?php highlight_php_trimmed( + 'strlen([]); // TypeError: strlen(): Argument #1 ($str) must be of type string, array given + +array_chunk([], -1); // ValueError: array_chunk(): Argument #2 ($length) must be greater than 0' + );?> + </div> + </div> + </div> + <div class="php8-compare__content"> + <p>La plupart des fonctions internes lance désormais une exception Error si la validation du paramètre échoue.</p> + </div> + </div> +</section> + +<section class="php8-section php8-section_light"> + <h2 class="php8-h2">Compilation Juste-à-Temps (JIT)</h2> + <p> + PHP 8 introduit deux moteur de compilation JIT (juste à temps/compilation à la volée). + Le Tracing JIT, le plus prometteur des deux, montre environ 3 fois plus de performances sur des benchmarks + synthétiques et 1,5-2 fois plus de performances sur certaines applications à longue durée d'exécution. + Généralement les performances des applications sont identique à PHP 7.4. + </p> + <h3 class="php8-h3"> + Contribution relative du JIT à la performance de PHP 8 + </h3> + <p> + <img src="/images/php8/scheme.svg" width="900" alt="Just-In-Time compilation"> + </p> + + <div class="php8-columns"> + <div class="php8-column"> + <h2 class="php8-h2 php8-h2_margin-top">Amélioration du système de typage et de la gestion d'erreur</h2> + <ul> + <li> + Vérification de type plus sévère pour les opérateurs arithmétique et bit à bit + <a href="https://wiki.php.net/rfc/arithmetic_operator_type_checks">RFC</a> + </li> + <li> + Validation de méthode abstraite des traits <a href="https://wiki.php.net/rfc/abstract_trait_method_validation">RFC</a> + </li> + <li> + Signature valide des méthodes magiques <a href="https://wiki.php.net/rfc/magic-methods-signature">RFC</a> + </li> + <li> + Reclassifications des avertissements du moteur <a href="https://wiki.php.net/rfc/engine_warnings">RFC</a> + </li> + <li> + Erreur fatale pour des signatures de méthodes incompatibles <a href="https://wiki.php.net/rfc/lsp_errors">RFC</a> + </li> + <li> + L'opérateur @ ne silence plus les erreurs fatales. + </li> + <li> + Héritages avec les méthodes privées <a href="https://wiki.php.net/rfc/inheritance_private_methods">RFC</a> + </li> + <li> + Type mixed <a href="https://wiki.php.net/rfc/mixed_type_v2">RFC</a> + </li> + <li> + Type de retour static <a href="https://wiki.php.net/rfc/static_return_type">RFC</a> + </li> + <li> + Types pour les fonctions internes + <a href="https://externals.io/message/106522">Discussion e-mail</a> + </li> + <li> + Objets opaques au lieu de ressources pour les extensions + <a href="https://php.watch/versions/8.0/resource-CurlHandle">Curl</a>, + <a href="https://php.watch/versions/8.0/gdimage">Gd</a>, + <a href="https://php.watch/versions/8.0/sockets-sockets-addressinfo">Sockets</a>, + <a href="https://php.watch/versions/8.0/OpenSSL-resource">OpenSSL</a>, + <a href="https://php.watch/versions/8.0/xmlwriter-resource">XMLWriter</a>, et + <a href="https://php.watch/versions/8.0/xmlwriter-resource">XML</a> + </li> + </ul> + </div> + <div class="php8-column"> + <h2 class="php8-h2 php8-h2_margin-top">Autres ajustement de syntaxes et améliorations</h2> + <ul> + <li> + Autorisation des virgules trainantes dans les listes de paramètres <a href="https://wiki.php.net/rfc/trailing_comma_in_parameter_list">RFC</a> + et dans les listes des use d'une fermeture <a href="https://wiki.php.net/rfc/trailing_comma_in_closure_use_list">RFC</a> + </li> + <li> + Les catchs non capturant <a href="https://wiki.php.net/rfc/non-capturing_catches">RFC</a> + </li> + <li> + Ajustement de la Syntaxe des Variables <a href="https://wiki.php.net/rfc/variable_syntax_tweaks">RFC</a> + </li> + <li> + Traite les noms des espaces de nom comme un seul token <a href="https://wiki.php.net/rfc/namespaced_names_as_token">RFC</a> + </li> + <li> + Throw est désormais une expression <a href="https://wiki.php.net/rfc/throw_expression">RFC</a> + </li> + <li> + Autorisation de ::class sur les objets <a href="https://wiki.php.net/rfc/class_name_literal_on_object">RFC</a> + </li> + </ul> + + <h2 class="php8-h2 php8-h2_margin-top">Nouvelles Classes, Interfaces, et Fonctions</h2> + <ul> + <li> + Classe <a href="https://wiki.php.net/rfc/weak_maps">Weak Map</a> + </li> + <li> + Interface <a href="https://wiki.php.net/rfc/stringable">Stringable</a> + </li> + <li> + <a href="https://wiki.php.net/rfc/str_contains">str_contains()</a>, + <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_starts_with()</a>, + <a href="https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions">str_ends_with()</a> + </li> + <li> + <a href="https://github.com/php/php-src/pull/4769">fdiv()</a> + </li> + <li> + <a href="https://wiki.php.net/rfc/get_debug_type">get_debug_type()</a> + </li> + <li> + <a href="https://github.com/php/php-src/pull/5427">get_resource_id()</a> + </li> + <li> + Implémentation objet de <a href="https://wiki.php.net/rfc/token_as_object">token_get_all()</a> + </li> + </ul> + </div> + </div> +</section> + +<section class="php8-section php8-section_dark php8-section_footer php8-footer"> + <div class="php8-section__content"> + <h2 class="php8-h2 center"> + Meilleurs performances, meilleur syntaxe, amélioration de la sécurité de type. + </h2> + <div class="php8-button-wrapper center"> + <a class="php8-button php8-button_light" href="/downloads">Migrez à PHP 8 maintenant!</a> + </div> + <div class="php8-footer__content"> + <p> + Pour le téléchargements des sources de PHP 8 veuillez visiter la page de <a href="http://www.php.net/downloads">téléchargement</a>. + Les binaires Windows peuvent être trouvé sur le site de <a href="http://windows.php.net/download">PHP pour Windows</a>. + La liste de changement est notés dans le <a href="http://www.php.net/ChangeLog-8.php">ChangeLog</a>. + </p> + <p> + Le <a href="/manual/fr/migration80.php">guide de migration</a> est disponible dans le manuel PHP. + Veuillez le consulter pour une liste détailler des nouvelles fonctionnalités et changement non rétrocompatible. + </p> + </div> + </div> +</section> + + + + +<?php site_footer();
-- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php