2011-08-08 15 views
5

Stworzyłem nową aplikację CakePHP 2.0 i chcę uruchomić powłokę wtyczki.Uruchamianie wtyczki w cakephp 2.0

<?php 
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php 
class TmakerShell extends Shell { 
} 

Jednak nie widzę go podczas uruchamiania Console/cake z linii poleceń.

Proszę doradzić, co przeoczyłem?

Odpowiedz

16

Zgodnie z latest documentation ścieżka dla muszli zmieniła się na app/Console/Command/.

Najedź skorupę do następującej lokalizacji: app/Plugin/Tmaker/Console/Command/TmakerShell.php (nie wiem, czy nazwy katalogów wtyczki są wielbłądziej obudowane w CakePHP 2.0, ale wydaje się działać w obu kierunkach.)

<?php 
class TmakerShell extends Shell { 
    public function main() { 
     $this->out('It works!'); 
    } 
} 

Jak CakePHP 2.0 wymaga ładuj wtyczki ręcznie, musisz również zaktualizować app/Config/bootstrap.php, dodając CakePlugin::loadAll(); lub CakePlugin::load('Tmaker'); do ostatniej linii.

Powinieneś wtedy mieć dostęp do swojej powłoki z wiersza poleceń. Wygląda to tak w systemie Windows:

C:\xampplite\htdocs\cake2\app>..\lib\Cake\Console\cake Tmaker.tmaker 

Welcome to CakePHP v2.0.0-beta Console 
--------------------------------------------------------------- 
App : app 
Path: C:\xampplite\htdocs\cake2\app\ 
--------------------------------------------------------------- 
It works! 
+0

Jak używać tego samego modelu wtyczki w TmakerShell. Na przykład mam nazwę modelu jako abc.php w folderze app/Plugin/Tmaker/Model, teraz chcę użyć tego modelu w TmakerShell. Jak można to zrobić? –

+0

@PardeepSingh może być konieczne użycie składni wtyczki: 'public $ uses = array ('Tmaker.Abc');' - http://book.cakephp.org/2.0/en/appendices/glossary.html#term-plugin -syntax – deizel

+0

To właśnie robię, ale pojawia się błąd: nie można znaleźć wtyczki Tmaker. Ale kiedy uruchamiam ciasto z -app/path/app, polecenie nie jest wykonywane. Brak wyjścia z ciasta, jeśli użyję opcji -app. –