Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir,
J'utilise ZF régulièrement pour mes projets, et dernièrement (enfin, ces derniers mois) je maintiens un petit projet où j'utilise ZF. Prochainement, j'ai pour objectif de libérer le code source de ce projet et de permettre à chacun d'installer celui-ci sur leur machine. Ce n'est pas définitif, mais je suis sur cette voie.
Maintenant, je me dis que c'est dommage d'avoir un petit projet de l'ordre de 2.5Mo incluant une bibliothèque de presque 20Mo. Vous pourriez me dire, n'utilise pas ce framework, oui d'accord, mais je l'aime bien ce ZF
Bref, un autre framework que j'apprécie particulièrement et Mootools, qui est particulièrement bien modulaire. En effet, il fourni un « builder » permettant de construire le framework avec le minimum de code, suivant l'utilisation que l'on souhaite. L'avantage est de limiter la taille du framework.
La petite particularité est qu'il est possible de restituer les modules sélectionnés grâce à une clé fournie directement dans le fichier JS téléchargé. Idéal lors de l'utilisation du framework dans plusieurs projets avec des modules différents, on a vite fait d'oublier ce que nous avions sélectionné comme module.
Je me demandais donc, c'est là où je veux en venir, s'il serait possible de développer ce même genre d'outil pour ZF. En effet, ce dernier possède plein de module pouvant être utilisés indépendamment (genre Zend Mail). Nous pourrions sélectionner les modules à utiliser comme dans le « builder » de Mootools.
La taille du projet en serait grandement réduite, surtout en nombre de fichiers (lent à l'envoi par FTP).
J'ai conscient que ce ne doit pas être évident à réaliser mais ce serait tout de même intéressant selon moi.
Vous en pensez quoi ?
Est-ce réellement faisable ?
Une idée ridicule ?
Ça existe déjà ? (si on met à part la suppression des fichiers à l'arrache ^^).
Hors ligne
Hello,
j'y ai déjà pensé,
pour info mootools propose sur son dépôt git (ne me demande plus où) son builder ..
par contre côté zf, pas mal d'inter-dépendance foireuse ... mais si tu te lance dans le projet et que j'ai un peu de temps perso je suis prêt a aider ...
Hors ligne
Hum... perso ça me paraît difficile à faire.
Je verrais bien une approche possible, c'est d'utiliser l'autoloader pour savoir quels modules sont utilisés, noter tout ça dans un fichier et faire un petit script qui fait le tar gz qui va bien.
Je suis une bille en autoloader, mais je pense que ça doit être faisable de récupérer les fichiers chargés et d'en extraire les modules...
A+, Philippe
PS : c'est pas fiable à 100% parce que vous pouvez oublier de tester une fonction qui utilise telle ou telle fonction en plus du ZF, mais ça me parait considérablement plus simple que de parser le code ou de retrouver les dépendances à la mano...
Hors ligne
Bin, pour trouver les dépendances, je pensais me baser sur les instructions d'inclusion (« require_once, require, etc. »). Ça mâche une bonne partie du travail. Ensuite, on peut inclure des modules par défaut (sous forme de « core ») avec par exemple Zend_Config, Zend_Loader, etc.
Ce qui couvre des dépendances optionnels. Ensuite, on pourrait mettre en place des dépendances suggérés (Zend_Config pourrait l'être d'ailleurs). Ce serait des modules non obligatoire mais compatible avec d'autres.
Je n'ai pas dis que ce serait facile, effectivement ce serait du boulot. Mais bon, c'est un moyen de prouver la modularité de ZF
Hors ligne
C'est possibilité devrait être offerte avec ZF2. Sur le net, il traîne déjà des graphs de dépendances entre les composants. Il faudrait gérer des pré-requis Zend_Cache, Zend_Locale, Zend_Date sont souvent sollicités par exemple.
Pour commencer Zend_Exception sera dans tous les packages
Hors ligne
il existe des module php pour tracer els dépendance... ou alors on s'interface avec l'autoloader puis on lance les test unitaire et hop ...
Hors ligne
Hello,
Il y a http://epic.codeutopia.net/pack/library/1.10.6 qui est pour l'instant limité à la version 1.10.6
@+
Hors ligne
Ah, effectivement, c'est un bon début.
Hors ligne