Я использую CakePHP 2.x
Я пытаюсь понять, как разрешить сценарию оболочки определить, является ли среда моим локальным dev-сервером или удаленным. В частности, мне нужен мой скрипт для выбора правильного подключения к базе данных, а также для правильного базового URL для ссылок.
Я решаю это для веб-приложения, выбирая соединение с базой данных с оператором switch, который проверяет $_SERVER['SERVER_NAME']
. Конечно, это не вариант сценария оболочки.
Поэтому мой вопрос заключается в том, кто должен писать мой сценарий таким образом, чтобы избежать следующих проблем:
Ex: myscript -db dev -url whocares.com
) Лучший вариант, о котором я могу думать, - установить флаг (Ex: myscript -env local
), а затем сценарий динамически установить соединение с базой данных, домен и т.д. Но это все еще кажется неудобным, и я надеюсь, что там будет лучший способ, с которым я не обращаю внимания.
Мы используем этот плагин именно для этой цели и еще несколько.
https://github.com/josegonzalez/cakephp-environments
Он позволяет обнаруживать вашу среду или просто устанавливать ее на основе системной переменной. Прочитайте документацию, в которой все объясняется.
$_SERVER['SERVER_NAME']
я не уверен, как отличить мой локальный сервер от удаленного (используя PHP).set CAKE_ENV=dev
какset CAKE_ENV=dev
(Windows), и прочитать ее из php. Или используйте имя хоста, MAC-адрес, некоторый идентификатор оборудования ... Все, что вы хотите.