Лучшие практики в планировании сценариев PHP - PullRequest
0 голосов
/ 29 июля 2010

Для проекта мне нужно запланировать несколько сценариев PHP.Некоторые из сценариев немного сложны (например, отправка почты, работа с базой данных, использование нескольких внешних веб-сервисов, использование внешних файлов и классов и т. Д.).Проблема в том, что эти скрипты также необходимо вызывать из браузера, и они используют некоторые переменные в массиве $_SERVER (включая HTTP_HOST).
Есть ли способ заставить работать скрипты такого типа?из командной строки, или мне нужно переписать их, чтобы они были «совместимы с командной строкой»?Или лучше использовать параметры из командной строки, которые определяют недоступные переменные?

У нас есть сервер под управлением Windows Server 2008.

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Вы должны абстрагировать ту часть скрипта, которая является общей для браузера и командной строки.Затем вы можете включить его в два сценария, один из которых будет использовать $ _SERVER, другой - переменные аргументов командной строки для запуска общей части.

1 голос
/ 29 июля 2010

Рекомендации по планированию сценариев PHP?

1) нет. Это скользкий уклон - вы тратите слишком много времени, пытаясь упорядочить сценарии по доступным временным интервалам, в результате вы получаете систему, которая меняет состояние в зависимости от того, какие задания были запущены, а какие - нет. Действительно, вы хотите, чтобы вся обработка запускалась непосредственно в ответ на пользовательские запросы. (это не значит, что они должны работать синхронно и в том же потоке выполнения, что и пользовательский запрос).

2) не делайте этого в MSWindows - операционные системы Microsoft в порядке для предоставления графических интерфейсов, но не имеют набора инструментов для управления заданиями и автоматизации, доступных в других операционных системах

Я видел много случаев, когда люди складывают вещи в запланированные партии просто потому, что производительность их кода отстой. Во многих случаях лучшим решением будет решение проблемы с производительностью.

Сказав, что, поскольку вы уже в дыре, да, вы можете скопировать весь свой код в командную строку и веб-версии - или вы можете загрузить wget или cURL и запланируйте эти программы для вызова ваших URL, передавая необходимые значения через GET или POST

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...