Hiçbir include_path ile sanal konak üzerinde propel ORM nesneleri oluşturmak nasıl?

1 Cevap php

I have a dev server with several virtual hosts on it. Each one needs to be able to run the command: propel-gen ./ creole That script executes some php that reverse-engineers the database... BUT the php it executes needs to be included to do so.

There is no include_path set in the php.ini because it would be global to all virtual hosts. I need the include_path to be unique for each vhost.

How can I have this work on the command-line? (note: htaccess won't work, because command-line doesn't go through apache).

Is there another way around this problem? Perhaps passing a command-line param to set an include path? Perhaps setting something in .bashrc? :(

P.S. - Komut kodlanmış bir yolunu içerir sahip olan, benim mac üzerinde çalışıyor

1 Cevap

PHP'nin komut satırından çalıştırırken, yapılandırma seçeneklerini tanımlamak için -d anahtarını kullanabilirsiniz, normalde php.ini tanımlanmış olacaktır

CLI PHP çalışırken neler yapılabileceği hakkında daha fazla bilgi almak için, Using PHP from the command line de bir göz atabilirsiniz

Senin durumunda, yalnızca görüntüleyen, bu çalışan varsayalım akım include_path:

$ php -r 'var_dump(get_include_path());'

Standart çıktı (btw, benim makinede) bu gibi olurdu:

string(20) ".:/usr/local/lib/php"

Şimdi, -d include_path geçersiz kılmak için bu yolu kullanarak:

$ php -dinclude_path='.:/usr/local/lib/php:/var/my/directory/lib' -r 'var_dump(get_include_path());'

Sen alıyoruz:

string(42) ".:/usr/local/lib/php:/var/my/directory/lib"


I admit, this is pretty boring/long to type, and you will sometimes forget the -dblahblah stuff...

Yani, biraz böyle, bir takma ad tanımlayabilirsiniz:

$ alias myphp='php -dinclude_path=".:/usr/local/lib/php:/var/my/directory/lib"'

Eğer yerine myphp komutunu kullanarak eğer Ve şimdi, php, artık include_path belirtmeniz gerekmez:

$ myphp -r 'var_dump(get_include_path());'
string(42) ".:/usr/local/lib/php:/var/my/directory/lib"

Bu kabuk oturumları arasında kalıcı değildir ... Bu yüzden size :-) giriş her zaman yürütülür, o yüzden sizin, ~/.bashrc sonunda alias komutunu koyabilirsiniz