Projets Laravel France

[proposition] package "artisan" pour remplacer commande app:install du starter-kit

  • Avatar de papajoker
    Membre depuis :
    31/05/2013
    Messages :
    278
    branche **DEV**

    je vous explique mon package ( v0.0.2  ;) ("artisan" suis pas sur du nom) :
    artisan est une route "vide" qui va simplement lister (et faire tourner) des plugins.

    Normalement un  plugin sert a la config - install de nouvelles fonctionnalités
    Bien sur il faut que mon package soit intégré dans starter-kit! son role initial est de remplacer app::install du kit.
    le but est de créer un laravel sur mesure après install.

    un plugin pour la config, un autre pour frameworks css, un autre pour pacquages ...

    ces plugins sont pour l'instant listés automatiquement mais possibilité d'un fichier conf ?

    on ajoute dans artisan un plugin :
    1) /src /plugins/  ( https://github.com/papajoker/artisan/tree/dev/src/plugins) une classe (simili controller) "toto"
    2) /src/views/plugins (https://github.com/papajoker/artisan/tree/dev/src/views/plugins) une vue(s)
    3 ) /src/config      (https://github.com/papajoker/artisan/tree/dev/src/config) une config

    le package propose automatiquement le plugin a  /artisan
    le plugin est accessible a : /artisan/MonPlugin/*

    ps: en etat actuel les plugins intégrés sont des fourre-tout de tests, seul le plugin artisan execute vraiment quelque chose

  • Avatar de NicolasWidart
    Membre depuis :
    08/04/2013
    Messages :
    65

    Vais re-posté ici, histoire de pas séparer trop les sujets. :)

    Donc avec ton package (qu'il faut installé via workbench, pourquoi pas via composer.json?) comment faut-il faire pour installer par exemple Sentry & Profiler? Ca ce fais via une commande?

    (Ps: Suis souvent sur l'IRC laravel.fr si jamais :) )

  • Avatar de papajoker
    Membre depuis :
    31/05/2013
    Messages :
    278

    pas d'install via composer.json car non déclaré il est actuellement sous mon nom il devrait être sous laravelfr non ?

    Nicolas tu ne risques pas d'installer un package car le plugin n'existe pas! il y a bien un plugin packages mais ce ne sont que des tests il ne fait que modifier app/config/app.php mais il n'enregistre pas les modifs :)
    Et oui c'est bien une Route vide (/artisan) car il ne fait rien sans plugin en gros c'est un site laravel sans controller(plugin).

    j'ai écrit ce package ce week-end pour une alternative a le ligne de commande; pour les plugins ... il faut du temps et que ce projet soit bon et être sur de l'interface pour ces plugins.

  • Avatar de NicolasWidart
    Membre depuis :
    08/04/2013
    Messages :
    65

    J'ai tenté d'installer le package histoire d'essayé de comprendre. C'est à dire donc dans workbench. Par contre j'ai:

    <pre class="prettyprint">
    {"error":{"type":"Symfony\Component\Debug\Exception\FatalErrorException","message":"Class 'Papajoker\Artisan\ArtisanServiceProvider' not found","file":"\/Users\/Nico\/Sites\/\u2022 Laravel 4\/Packages\/artisan-gen\/bootstrap\/compiled.php","line":4121}}%  

    au 'php artisan serve'. (Oui j'ai ajouté le service provider, et j'ai dump-autoload également)

  • Avatar de caouecs
    Membre depuis :
    12/04/2013
    Messages :
    128

    Excusez moi, est-ce que je pourrais avoir une explication écrite du but de ce package ?
    c'est quoi que tu appelles plug-in dans ce cas ?

  • Avatar de papajoker
    Membre depuis :
    31/05/2013
    Messages :
    278

    caouecs:Excusez moi, est-ce que je pourrais avoir une explication écrite du but de ce package ?
    c'est quoi que tu appelles plug-in dans ce cas ?

    le but remplacer le app::install du starter-kit par un package intégré au kit.
    l'acces aux commandes ce fait par /artisan (ou /installation) au lieu d'un acces par ligne de commande

    Il permet juste d'avoir d'avoir des formulaires a la place des questions en ligne de commande

    le "plugin" est la commande = app:config ou app:install
    remplace plugin par commande et voila: /artisan/config , /artisan/install

    Perso je nomme cette commande "plugin" car pour l'ajouter il n'y a pas a modifier la route et la dans état actuel; c'est une boite vide qui ne fonctionne que par des plugins, car le but est bien sur d'en ajouter plusieurs (config utilisateur, ajout-retrait de packages).
    La c'est un site configuration vide : il attend juste des commandes(plugins).

    la je viens de reprendre le code de nicolas pour modifier composer.json et ai fait un début de "commande" :) (ou plugin) nommé : "Ajout de nouveaux packages"

    ![http://html.webstratege.fr/artisan1.png](http://html.webstratege.fr/artisan1.png)
    ![http://html.webstratege.fr/artisan2.png](http://html.webstratege.fr/artisan2.png)
  • Avatar de caouecs
    Membre depuis :
    12/04/2013
    Messages :
    128

    Ok je comprends mieux maintenant, pour l'installation plus simple de packages provenant de Composer, je te conseille d'aller faire un tour sur https://github.com/rtablada/package-installer , ça permet de mettre à jour tout seul app/config/app.php avec Providers et surtout Aliases

    Et pourquoi pas t'en inspirer pour les plugins

  • Avatar de papajoker
    Membre depuis :
    31/05/2013
    Messages :
    278

    merci caouecs pour le lien

    mais gestion du json et app.php était deja écrite.

    perso je desire lancer une commande type composer update vendor/composant apres la modif du json

    et la :O

    $command='composer update  '. $this->package['key'].'  -d '.base_path();
    $command='composer update  '. $this->package['key'].' ';
    $command='composer validate';
    chdir(base_path() );
    echo $command;
    passthru($command, $result );

    avec -d /dossierLaravel est un retour 1 mais rien ne se passe pas action ni sortie (a mano dans console ca marche la commande)
    sans -d /dossierLaravel
     composer me retourne fichier json non trouvé :) donc json bien lancé
    pas de -d! ok je fait chdir(base_path() ) avant la commande
     composer validate me retourne : ./composer.json is valid 8-)
     et la comme avec -d update retour 1 avec aucune sortie, aucune action :dizzy:

    donc apparemment lorsque tout est bon pour lui (les params) il ne fait rien? bien sur j'ai essayé de le lancer directement, et composer me retourne qu'il ne fonctionne uniquement en mode CLI !

    composer ok
    composer -V ok
    composer validate ok
    composer diagnose me retourne rapport que tout est ok
    composer status rien
    composer show rien

    bon, apres beaucoup de temps perdu, je prend mon courage a 2 mains et install le starter-kit pour la premiere fois sous win
    et la bien sur ca marche. :dizzy:
    ce sont des droits www-data :wassat: ou alors composer cherche son dossier dans un home... ?
    et pourtant ai trouvé les mêmes commandes exec('php composer') dans consoles de yii et autres, je doit être trop sévère en droits?
    donc pas vraiment résolu :angry:

Vous ne pouvez pas répondre à ce sujet.