Les frameworks sont-ils nécessaires en PHP? [fermé]

9

Les frameworks sont-ils vraiment nécessaires en PHP?

Quels sont les avantages et les inconvénients d'en utiliser un?

Tayyab Gulsher Vohra
la source
2
J'ai récemment parcouru ce message SO qui semble plutôt perspicace concernant l'utilisation de PHP sans framework stackoverflow.com/questions/3655145/…
Matt Molnar

Réponses:

17

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.

Tim
la source
1
mais le problème est que, de jour en jour, il y a beaucoup de frameworks que je ne sais pas lequel utiliser
Tayyab Gulsher Vohra
4
@Tayyab Tu dois les utiliser tous!
Arnis Lapsa
1
Le choix d'un cadre est à vous de décider, en fonction des besoins de votre application et de votre style de codage. Demandez-vous également, avez-vous besoin d'un framework pour faire rouler votre propre application, ou d'un CMS (Joomla, Drupal, etc.)?
Darren Newton
2
Vous devez faire attention aux "inconnus inconnus". Si vous n'utilisez pas de framework, le risque d'oublier ou de ne pas savoir certaines choses que les frameworks résolvent pour vous est important. Par exemple, gérez-vous correctement la prévention des attaques CSRF? Votre application fonctionnera sans une telle prévention, mais elle sera facilement piratée. Le choix d'un cadre majeur (l'un d'eux) signifie que vous bénéficiez de tout ce dont les applications Web doivent se préoccuper, même si vous ne l'avez pas encore appris.
Joeri Sebrechts
9

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:

entrez la description de l'image ici

Jake McGraw
la source
7

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

vartec
la source
bien les gars je suis un biginner et j'essaye d'écrire du code je suis nouveau et je veux être un développeur de base de php alors s'il vous plaît les gars me suggèrent
Tayyab Gulsher Vohra
3
Cet article date de 2006 et est désuet.
Jonathan Rich
1
@JonathanRich: cet article est peut-être même obsolète, mais il est toujours très intéressant!
4

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.

guiman
la source
1
eh bien je suis un débutant en php et je n'ai encore rien développé de grand et je ne sais pas quoi utiliser et ce que je devrais vraiment faire, je suis totalement vide
Tayyab Gulsher Vohra
La première étape serait de ne pas les utiliser, d'apprendre les technologies et leur fonctionnement (php, framework, js, css, etc.), puis une fois que vous aurez compris les bases de la programmation php, puis utiliser un framework comme Zend ou Symfony ou CakePHP pour apprendre comment booster vos applications
guiman
2

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.

Christian
la source
je veux vous dire quelque chose les gars en fait j'utilise 2 frameworks l'un est codeigniter et l'autre est yii et je veux devenir développeur principal mais mes concepts OOP ne sont pas si bons la vérité est que.
Tayyab Gulsher Vohra
Comment différenciez-vous une instruction 'UPDATE' et 'INSERT' dans la méthode $ p-> save ()?
Srisa
@Srisa - Je n'ai pas défini d'identifiant. Pour faire une UPDATE, j'ai besoin: $p=new Product($the_id); $p->load();Le load()est à la fusion d' une rangée par opposition à écraser toute la ligne.
Christian
2

Toutes les applications ne nécessitent pas de framework, mais la plupart des applications conséquentes le font.

Les avantages sont:

  • Ne vous répétez pas - Toute nouvelle application aura des fonctionnalités communes avec de nombreuses applications existantes. Il est logique d'éviter de se répéter. Un framework regroupe les fonctionnalités dont vous aurez besoin pour la plupart des applications. Vous gagnerez ainsi du temps (et de l'argent).
  • Ne vous embêtez pas - Le développement de logiciels en général peut être très douloureux. Il est logique d'automatiser les choses banales. Un cadre s'occupe de la plomberie, vous pouvez donc vous concentrer sur votre créativité. Vous économiserez donc des efforts (et de l'argent).

Les inconvénients sont:

  • Notre chemin ou pas du tout - Vous devrez peut-être suivre les conventions rigides du cadre, ce qui pourrait contrevenir à vos croyances dogmatiques sur la façon dont les choses devraient être faites (et par conséquent vous enrager).
  • Syndrome de cadre acquis - Vous pouvez devenir trop dépendant des cadres pour faire même les choses les plus simples. Vous oublierez comment acheminer les demandes, accéder aux bases de données, mapper les objets aux requêtes de base de données, etc. car le framework vous tient la main à travers tout cela.

Dans l'ensemble, il vaut mieux en utiliser un.


la source