2010-05-06 3 views
2

Chaque fois que je crée une bibliothèque PHP (pas un framework) j'ai tendance à tout réinventer à chaque fois.où sont les cadres pour créer des bibliothèques?

"Où placer les options de configuration?"

"Quel motif de conception utiliser ici?"

"Comment toutes les classes devraient s'étendre les unes les autres?"

et ainsi de suite ...

je pense, est-il pas un bon cadre de la bibliothèque à utiliser partout? C'est comme un framework pour une application web (symfony, cakephp ...) mais au lieu de créer une application web, ce framework va aider le codeur à créer une librairie, fournissant toute la structure et les classes standard (pattern d'observateur, dépendance ...) injection, etc.).

Je pense que ce sera la prochaine chose importante si elle n'est pas disponible pour le moment. De cette façon, il y aura une norme à suivre lors de la création de bibliothèques, ou bien c'est comme une jungle où tout le monde crée sa propre structure, et beaucoup de codeurs se contentent de coder sans penser à la réutilisabilité ...

Il n'y en a pas cadre pour la création de bibliothèques en ce moment? Si ce n'est pas le cas, n'êtes-vous pas d'accord avec moi que c'est la façon de le faire, avec un cadre de bibliothèque? Parce que je consacre beaucoup de temps (des semaines!) À penser à la façon d'organiser les choses, au niveau du code et du fichier, alors que je devrais commencer à coder la logique.

Partagez votre opinion!

Répondre

4

Eh bien, now Bill basically dit tout ce que j'allait dire, mais de toute façon je peux jeter quelques liens:.

Si vous voulez quelque chose que vous pouvez simplement jeter dans votre Webroot et commencer à coder votre application en, vous êtes à la recherche d'un framework hiérarchisé qui utilise fortement Convention over Configuration. des cadres modernes, Symfony vient à l'esprit.

Si vous voulez des composants autonomes, recherchent des bibliothèques de composants comme Zeta Components (formerly ezComponents) ou Zend Framework ou Symfony Components (comprend un DI framework). Vous pouvez les réutiliser ou étendre le m pour ajouter des exigences supplémentaires. Ou utilisez Doctrine si vous avez besoin d'un ORM. Et n'oubliez pas PEAR.

Cependant, comment utiliser ce qui précède ou ce que vous en faites n'est rien que vous puissiez télécharger quelque part. Architecture et Design est la tâche du développeur (ou architecte). Vous ne pouvez pas le télécharger, car il ne correspondra probablement pas à votre application sans modification importante. Les modèles, comme le GOF patterns ou le PoEAA patterns offrent des conseils sur la façon de résoudre les problèmes de manière générale, mais vous devez toujours les adapter à votre application.

1

La plupart de ce que vous décrivez est appelé génie logiciel. C'est l'essence de l'utilisation de logiciels de base et d'outils linguistiques pour former une solution complexe. Pour ce qui est de faciliter et d'abstraire les parties répétitives, c'est ce que la plupart des langues modernes essaient de faire.

Je pense que la réponse à votre question est: Python, .NET, Ruby

4

Je pense qu'il ya des cadres qui répondent à vos besoins. Les développeurs font une distinction entre les frameworks full-stack et les frameworks basés sur les composants.

Les frameworks basés sur les composants incluent une collection de composants plus fins qui peuvent être utilisés de manière plus ou moins indépendante. Des exemples sont la configuration, l'authentification, le courrier électronique, les services Web, etc.

Si vous parlez d'un framework qui facilite le développement de ces composants, je ne suis pas sûr de la valeur de ces composants. Les frameworks fournissent de la valeur en faisant abstraction du code commun dont ils sont sûrs que vous aurez besoin. Quel est le code commun entre un composant d'authentification et un composant de messagerie?

Les châssis améliorent la productivité des développeurs pour des tâches bien connues. Plus la tâche est spécifique et bien connue, plus le cadre peut supposer qu'il sait comment le faire. Exemple: Drupal ou MediaWiki.

Mais les frameworks ne font pas de conception OO pour du code arbitraire pour vous. C'est aller dans la direction opposée, loin de plus spécifique, et vers des tâches plus larges. Il est difficile d'identifier le code commun qui peut être extrait d'un ensemble aussi large de technologies que les «bibliothèques»."

Questions connexes