Les frameworks sont-ils vraiment nécessaires en PHP?
Quels sont les avantages et les inconvénients d'en utiliser un?
Les frameworks sont-ils vraiment nécessaires en PHP?
Quels sont les avantages et les inconvénients d'en utiliser un?
Réponses:
Non, mais ils sont gentils.
Avantages : permet de gagner du temps sans avoir à reconstruire le code vous-même. Utilisez la myriade de fonctionnalités, de fonctions et de structures de données créées par quelqu'un d'autre qui s'appliquent à votre projet.
Inconvénients : ne pas avoir construit le code vous-même pourrait être une perte à un meilleur niveau de compréhension sur la base duquel votre projet fonctionne.
Les cadres d'application Web ne sont aussi bons que votre expérience avec eux.
Chaque cadre a une courbe d'apprentissage, jusqu'à ce que vous surmontiez cette courbe, vous finirez probablement par faire des choses tellement à l'envers que vous annulez tous les avantages de l'utilisation d'un cadre. Votre application sera inutilement lente à développer, le code sera difficile à suivre et le tout se cassera lorsqu'une nouvelle version du framework sera publiée. Je recommanderais de ne pas essayer d'utiliser un cadre inconnu (ou toute technologie inconnue) pour des projets avec un délai serré.
Comment peut-on améliorer l'utilisation des cadres?
Vous devrez créer une poignée d'applications horribles et réitérer. Finalement, vous comprendrez les bizarreries, et l'utilisation d'un framework vous permettra un temps de développement plus court et un code mieux organisé.
Devriez-vous utiliser un framework PHP?
Quiconque code suffisamment PHP utilise finalement un framework. La question est la suivante: utiliserez-vous votre propre framework ou développé par un tiers? D'après mon expérience, vous ne développerez probablement jamais votre propre framework qui correspondra à la robustesse et à la qualité d'un framework tiers. Cela dit, le développement de votre propre framework semble être un droit de passage dans la communauté PHP, alors ne me laissez pas vous décourager d'écrire votre propre classe d'abstraction de base de données.
Voici un graphique utile:
Selon Rasmus Lerdorf , vous n'avez pas besoin de framework supplémentaire, car PHP est lui-même un framework. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Eh bien, cela dépend vraiment de la taille de votre projet. Une page d'accueil sans base de données et pas plus de 10 pages, un cadre va être trop, principalement parce que les encadrements ont toujours besoin de beaucoup de configuration et de personnalisation dans la plupart des cas, pour répondre à des besoins spécifiques. Et dans certaines situations, elles peuvent être un peu plus lentes que plusieurs pages incluses dans un fichier (pensez à tout le framework à charger pour utiliser ses fonctionnalités.).
Maintenant, si vous prévoyez un site de taille moyenne / grande, avec des interactions de base de données, des services Web, etc., vous aurez besoin d'un cadre pour vous aider à interagir avec différentes technologies et à organiser votre code de manière à ce que lorsque les choses se cassent, vous aurez l'habilité pour le détecter et le réparer rapidement. De plus, si vous pensez aux clients, ils changent toujours d'avis sur les logiciels, donc si le client a besoin de modifier ou d'ajouter une nouvelle fonctionnalité, vous ne devriez pas avoir à parcourir tout votre code et à réfléchir à la façon de brancher cette nouvelle fonctionnalité en tout ces sphagetti.
Il y a beaucoup d'autres avantages et inconvénients, mais ce sont les premiers qui m'ont traversé l'esprit.
Edit: J'utilise le framework symfony dans les bases quotidiennes et j'ai également travaillé avec php pour l'université (j'avais des cours sur le développement web qui ne permettaient d'utiliser aucun framework), donc la plupart de cela vient de cette expérience.
Tu plaisante, n'Est-ce pas?
La nécessité dépend de l'utilisation. Les ordinateurs ne sont pas nécessaires à l'humanité, ni aux voitures, etc.
Quant aux avantages / inconvénients, à chacun son propre!
Je voudrais montrer un exemple de code de mon propre framework:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Regarde ce que j'ai fait là? Cette classe sert de modèle pour un magasin. Qu'est-ce qui est si spécial à part OO? Si la table ou une colonne n'existe pas, elle est créée dynamiquement. 0 installer des scripts. Bien sûr, c'est une caractéristique spécifique de mon framework. Mais vous avez l'idée.
$p=new Product($the_id); $p->load();
Le load()
est à la fusion d' une rangée par opposition à écraser toute la ligne.
Toutes les applications ne nécessitent pas de framework, mais la plupart des applications conséquentes le font.
Les avantages sont:
Les inconvénients sont:
Dans l'ensemble, il vaut mieux en utiliser un.