пхп скрипт должен сам закончиться при наступлении сметного времени и сообщить клиенту чтобы его перезапустили еще раз с новыми параметрами
если у вас там цикл со многими итерациями, то в начале скрипта сохраните время старта в конце каждой итерации цикла проверяйте сколько времени прошло и если время на исходе то прерывайте цикл и отправляйте указанную выше информацию клиенту
Имеется некий код на Js, который отправляет данные через ajax на серверный скрипт. Каждый скрипт может выполняться не более чем указано в директиве max_execution_time.
Требуется: отправлять данные на сервер, включать прогресбар и при подходе к max_exececution_time перезапускать скрипт пхп чтобы он дальше выполнял некие действия. Конечно же скрипт должен продолжать выполнять с момента перезапуска дальше задачу...
Итак собственно вопрос: это возможно? Куда копать?
Это позволяет и легко находить не настроенные параметры и лаконично обрабатывать необязательные.
Иногда предпочтительнее выбросить исключение, если элемент жизненно важен
Продублирую ответ из этой темы здесь, так как тема "документации кода" выходит за рамки работы с субд.
Попытался допилить либу под себя, с учетом возможностей 5.3. За основу взял из фреймворка Yii. Выложил на github. Был бы очень признателен в любой критике
Могут возникнуть проблеммы если нет такого значения.
Я думал над этим, но потом решил, что если такого параметра не будет, то пусть лучше. возвращаться null. B док блоке описал @return соответствующий. На него и проверять (is_null), вместо "NOT SET". Или лучше вот так явно проверку проводить?
И раз класс явно называется DBSettings, то почему getDSN не в нём?
Почему сделано getProperty я понимаю, удобство обращения к массиву. Но почему бы для явным образом названного класса не повесить публичные getUsername, getPassword? Они лаконичнее, а изнутри могут проксировать к getProperty.
Поправил, исходя из вашего замечания. В общем жду критику, и хотелось бы побольше))). Спасибо.
Мне кажется логичным указать это в комментарии ко всему классу. Что от использования класса можно ожидать исключение с таким-то именем.
Здесь надо решить, что важнее - документация кода или усилия, на это затрачивающиеся. Если комментарий надо исправить в двух местах - когда-нибудь это будет не сделано. А противоречивая документация хуже её отсутствия.
Подумаю. Учту.
Мелкий пишет:
Хочу заметить по непосредственно коду - у вас очень загадочным образом размазаны настройки подключения. Почему dsn - в конструкторе, а логин и пароль - в подключении?
И раз класс явно называется DBSettings, то почему getDSN не в нём?
DSN - это же уже требование PDO. Поэтому его формированием занимается класс ответственный за соединение (создание экз. PDO). DBSetting чистый контейнер для входных данных, таких как имя юзера, бд и тд. Хотя возможно вы и правы.
Мелкий пишет:
Почему сделано getProperty я понимаю, удобство обращения к массиву. Но почему бы для явным образом названного класса не повесить публичные getUsername, getPassword? Они лаконичнее, а изнутри могут проксировать к getProperty.
Создавал на скорую руку. Идея такая посещала. Переделаю.
Мелкий пишет:
Ну и кидать исключения в конструкторе - не самая лучшая идея. Объект создаётся и больше не удаляется. В PHP это не столь важно, т.к. через доли секунды скрипт завершится и освободит все ресурсы, но стоит иметь в виду.
Учту. Не подумал.
А вообще я либу пишу для себя. За основу взял из фреймворка Yii. Выложил на github. Был бы очень признателен в любой критике.
Возник вопрос по документированию кода. Например есть некий класс, в нем метод который выкидывает исключение. Этот метод вызывается конструктором. Нужно ли документировать исключение в пояснениях конструктора?
например добавив к текущему времени 1 год
проблема в том что php-скрипт на удаленном сервере может обращаться к файлу куки у себя на сервере, либо содержать в своем коде переменную имя которой неизвестно
Не совсем понятна проблема, подробнее пожалуйста опишите суть проблемы.
Добрый день, подсел на Ваш форум, почитал много интересного) И вот появился вопрос:
Нужно организовать разделение прав у нескольких пользователей.
А теперь подробней что да как:
Допустим у нас есть 3 пользователя:
Admin - можeт все
User_1 - может смотреть
User_2 - может смотреть, редактировать, удалять.
User_3 - ему доступ запрещен
Естественно админ может проставить кому что можно.
Каким образом лучше и правильней все это сделать? Буду благодарен за любую помощь, отвечу на дополнительные вопросы)
З.Ы.
Поиском пользовался, но то, что я нашел - не очень понравилось.
Лучше всего создать группы пользователей. Таким образом на будущее возможно расширять права не одного, а целой группы. Если использовать БД, то каждой группе назначай уникальный ид и соответственно проверку через ид на права.
Как я понял у меня неправильно подключена библиотека curl.
Лично мне не нравиться wamp. Уж если что-то использовать то это кроссплатформенное типа xamp. А лучше всего ставить все ручками.
Я с сервером виндовым не работал как таковым, приверженец линукса). В свое время очень сильно доссили веб-сервер, забивали канал, mysql бил ошибку. Настроил схему - фронтенд-бекенд + скриптик для отслеживания соединений больше 40 с одного айпи и последующим добавлением правила в фаервол. Сейчас даже slowloris положить не смог. Что успешно делается с другими серверами).