12
votes

Kohana - ligne de commande

J'essaie de "FAUx-Fork" un processus (un email étant envoyé via SMTP) dans mon application Web et l'application est construite sur Kohana. xxx

Je reçois une erreur -

Avis: index non défini: nom_serveur

quand je regarde Le fichier Index.PHP de Kohana, je vois qu'il recherche une variable nommée Server_Name, mais je suppose que cela vient nul, car Kohana ne pouvait pas détecter cette valeur et la définir avant de courir.

Toute idée Comment faire fonctionner Kohana via la ligne de commande?


3 commentaires

Quelle version de Kohana utilisez-vous?


Vous êtes très proche dans ce petit morceau de code, il suffit d'ajouter --uri = devant la commande $ de la commande exec ('php index.php --uri ='. $ commande. '> / Dev / NULL & ', $ Erreurs, $ Réponse); Mais depuis le reste de votre question, je pense qu'il serait peut-être préférable d'utiliser un cronjob pour cela ou si vous utilisez Kohana3, utilisez ses capacités HMVC.


Maintenant, vous êtes capable de faire uniquement ceci: php index.php --task = démo , où cette démo est enregistrée dans classes / tâche / démo.php en tant que La classe Task_Demo étend minion_task . Pour plus d'informations, cochez ici kohanaframework.org/3.3/guide/minion/tasks


6 Réponses :


10
votes

Autant que je sache, vous ne pouvez pas exécuter les fichiers Kohana directement dans la ligne de commande en raison de ses méthodes de bootstrap.

Vous pouvez faire 2 choses: exportez toutes les commandes comme des fonctions à l'extérieur de Kohana et exécutez-les de manière indépendante.

Quelque chose d'autre que vous pourriez faire est d'exécuter le bac à l'index.php situé dans le dossier principal de Kohana lors du passage du contrôleur $, ainsi que des variables de la méthode $ Il finit sur le bon objet où votre code est situé:

pour Kohana 2: xxx

kohana 3 xxx < / Pré>

Edit: Kohana a un excellent coureur de tâches CLI de la version 3.3 en tant que module officiel. Pour la version 3.2, il s'agit toujours d'un module non officiel. Je vous suggère d'utiliser celles-ci car ils donnent beaucoup d'options supplémentaires sur la course à partir de CLI:


2 commentaires

Ce n'est pas vrai, vous peut Run Kohana à partir de la ligne de commande. Cette réponse ne devrait probablement pas être acceptée.


Cette réponse est à la fois fausse et vraie. En fait, j'ai expliqué que vous ne pouvez pas exécuter directement les fichiers Kohana. Mais vous pouvez les courir à la creuset l'index.php comme Zombor Byiath indique (sur les développeurs). Je conviens que j'aurais dû le phraser différemment. Édité maintenant ^^



5
votes

Si vous utilisez Kohana 3, vous pouvez l'exécuter à partir du terminal.

Exemple H2>
php index.php --uri=controller/action


0 commentaires

7
votes

et kohana2 est juste php index.php contrôleur / méthode / param1 / param2 / etc

Kohana a été construit pour fonctionner sur le CLI ainsi que sur le Web.


0 commentaires

17
votes

Après avoir examiné le code source Kohana3, j'ai trouvé qu'il dispose d'une prise en charge de CLI ( System / Classes / Kohana / Cli.php ). Vous pouvez passer 3 options (URI, méthode, obtenir, poster). Donc: -

$ php index.php --uri = "éléments / liste"

appellerait la méthode la liste dans contrôleur_items .


1 commentaires

Pour quiconque a le même problème que moi. Cette fonctionnalité a été supprimée à Kohana 3.3. Vous ne pouvez plus passer l'URI comme ça. :(



2
votes

Pour Kohana 3, consultez ces DOCS et Source .


2 commentaires

Ce lien ne semble pas avoir une réponse valide ou des instructions utiles sur le processus d'exécution de Kohana 3 sur CLI.


@Alejandro C'est la seule documentation de CLI officielle CLI que je pouvais trouver. Kohana est gros sur leur source d'être la documentation elle-même.



1
votes

J'ai eu un problème similaire

Avez-vous ou quelqu'un a ajouté le Server_name au fichier index.php ?

Si oui soit enlevez Le code en dehors du index.php (et ou bootstrap) ou vous pouvez l'envelopper dans un xxx


0 commentaires