Framework nette: premières impressions
L'enquête PHP Framework de
SitePoint a révélé un concurrent surprenant: Nette. Cet article plonge dans nette, examinant ses fonctionnalités et la comparant à Symfony2.
Nette a obtenu un classement troisième remarquable dans les catégories de projets professionnels et personnels, en suivant uniquement Laravel et Symfony2. Sa popularité garantit une inspection plus approfondie. Cette revue est basée sur le didacticiel officiel "Getting Starting", en se concentrant sur une application de blog simple.
Caractéristiques et structure clés:
nette, tout en adhérant à une architecture MVC, présente une approche unique. La couche "modèle" est moins importante et la configuration repose fortement sur les fichiers .neon
. La structure du projet diffère considérablement de Symfony2:
Les répertoires clés incluent www
(servant index.php
et actifs statiques), vendor
(pour les dépendances) et app
(contenant config
, presenters
, templates
, et router
) . La configuration est gérée via config.neon
et config.local.neon
, avec ces derniers paramètres primordiaux dans le premier.
Interaction de la base de données et administration:
Administrateur de paquets NETTE, une alternative phpmyadmin légère.
Bien que pratique, les capacités limitées de l'administrateur peuvent nécessiter un outil de gestion de base de données dédié pour les environnements de production. Le placement de l'administration par le didacticiel dans le répertoire www
soulève des problèmes de déploiement (nécessitant une exclusion explicite via .gitignore
ou similaire).
routage:
Le système de routage de NETTE, défini dans app/router/RouterFactory.php
, utilise une usine pour cartographier les URI sur les contrôleurs / actions. Par exemple:
$router[] = new Route('post/show/<postid>', 'Post:Show');
Cela relie proprement /post/show/4
à l'action Post:Show
. La génération de liens dans les modèles Latte est concise:
<a href="https://www.php.cn/link/bea99816975d4154590d05ce68da8b63">{$post->title}</a>
Modèle de latte Moteur:
Latte, le moteur de modèles de Nette, propose une syntaxe rationalisée par rapport à la brindille. Il utilise {}
pour les structures de sortie et de contrôle, prenant en charge les macros pour une fonctionnalité améliorée. Par exemple:
<ul n:if="$items"> {foreach $items as $item} <li id="item-{$iterator->counter}">{$item|capitalize}</li> {/foreach} </ul>
contrôleurs et actions (présentateurs):
Les présentateurs de Nette servent de contrôleurs. La méthode renderShow
démontre une action typique:
$router[] = new Route('post/show/<postid>', 'Post:Show');
NETTE gère le modèle de modèle implicitement basé sur le nom de l'action (par exemple, renderShow
utilise Post/Show.latte
). L'injection de dépendance gère l'accès à la base de données.
Authentification et formulaires:
NETTE prend en charge diverses méthodes d'authentification, y compris les approches basées sur la mémoire et la base de données. Le contrôle d'accès utilise les rôles et un système ACL, bien que l'implémentation puisse sembler moins intuitive que Symfony2's security.yml
. La création de formulaire est simple, tirant parti des gestionnaires de rappel pour le traitement des soumissions.
Débogage et test:
nette comprend Tracy, un puissant outil de débogage et un testeur, un cadre de test. Tracy fournit une barre d'outils pratique (illustrée ci-dessous) pour le développement, facilement désactivé dans la production.
Conclusion:
nette, bien que relativement jeune, présente une alternative convaincante aux cadres établis. Ses forces résident dans ses fonctionnalités de sécurité (protection XSS de Latte), les performances et la facilité d'utilisation. Cependant, la documentation pourrait bénéficier d'améliorations de clarté et d'exhaustivité.
Questions fréquemment posées (FAQ):
Les FAQ fournies offrent un aperçu complet des aspects clés de NETTE, de la sécurité, du débogage, des modèles, du routage, de la configuration du projet, des tests, de la gestion des formulaires, de l'interopérabilité et de l'engagement communautaire. Ces FAQ complètent efficacement les détails techniques de l'article principal.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...
