La veille technologique, élément de la veille stratégique, consiste à surveiller les évolutions techniques, les innovations dans un secteur d’activité donnée. La veille technologique comprend notamment la surveillance, la collecte, le partage et la diffusion d’information permettant d’anticiper ou de s’informer sur des changements en matière de recherche, développement, brevet, lancement de nouveaux produits, matériaux, processus, concepts, innovation de fabrication, etc…. Cela a pour but d’évaluer l’impact sur l’environnement et l’organisation.
J'effectue une veille technologique en permanence principalement grâce à Twitter mais aussi avec un qui est un agrégateur de contenus. Il permet d’ajouter et de garder tous types de ressources. En plus des informations fournis chaque semaine/mois j'utilise le plugin daily.dev qui génère l'actualité du développement web à chaque nouvel onglet sous mon navigateur. Mais j'ai également utilisé des sites d'acualités comme Kinsta.com ou Developpez.com
J'ai décidé de traiter sur le sujet de l'évolution du PHP. Ma thématique est : Comment le langage dominant du web assure sa pérennité ?
PHP.net définit le PHP comme:
un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications web.
Pour bien comprendre l'exécution du PHP. Voici les 4 étapes:
L'amélioration apporté par PHP JIT s'explique par l'extension OPcache. Lorsque OPcache est activé, l’interpréteur PHP passe par les quatre étapes mentionnées ci-dessus uniquement la première fois que le script est exécuté. Comme les bytecodes PHP sont stockés dans la mémoire partagée, ils sont immédiatement disponibles en tant que représentation intermédiaire de bas niveau et peuvent être exécutés immédiatement sur la VM Zend.
Afin d'améliorer l'érgonomie des classes PHP, nous pouvons desormais utiliser la promotion des propriétés dans le Constructeur de classe.
class User
{
public function __construct(
private string $name,
private string $email,
private DateTimeImmutable $born_at,
) {}
}
Les évolutions et nouveautés apportées par la version 8.1 de PHP s'inscrivent depuis quelques temps déjà dans une perspective de typage et de robustesse pour permettre aux développeurs d'écrire du code plus stricte. Un code plus stricte permet à une application de survivre et d'évoluer facilement durant son cycle de vie.
Parmis les ajouts notables, on notera les Enums (énumérations) sont des types qui ne peuvent être instanciés qu'avec des valeurs spécifiques. On les trouve couramment dans d'autres langages orientés objet, mais ils nécessitaient auparavant des solutions de contournement (workaround) pour être implémentées dans PHP. Notamment avec les constantes de classes. Voici comment les définir:
enum PostStatus {
case Published;
case InReview;
case Draft;
}
Les énumérations se comportent de la même manière que les classes et les interfaces. Ils sont entièrement compatibles avec le système de type, vous pouvez donc indiquer qu'une fonction n'accepte qu'une valeur définie dans une énumération:
class Order {
public function __construct(
public string $delivered_at,
public string $items,
public OrderStatus $status=OrderStatus::Draft) {}
}
Maintenant, la RFC des types d’Union 2.0 propose d’ajouter la prise en charge des types d’Union dans les signatures de fonctions, de sorte que nous ne dépendrons plus de la documentation en ligne, mais définirons les types d’Union avec une syntaxe T1|T2|... à la place:
class PaymentProcess {
private int|float $amount;
public function setAmount(int|float $amount): void {
$this->amount = $amount;
}
public function getAmount(): int|float {
return $this->amount;
}
}