PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 20
lodar Отправлено: 19 Мая, 2014 - 00:16:20 • Тема: Длительное выполнение скрипта Php, перезапуск через ajax • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1394
Panoptik пишет:
пхп скрипт должен сам закончиться при наступлении сметного времени и сообщить клиенту чтобы его перезапустили еще раз с новыми параметрами

если у вас там цикл со многими итерациями, то в начале скрипта сохраните время старта в конце каждой итерации цикла проверяйте сколько времени прошло и если время на исходе то прерывайте цикл и отправляйте указанную выше информацию клиенту

Я вас понял. Спасибо.
lodar Отправлено: 18 Мая, 2014 - 23:14:25 • Тема: Длительное выполнение скрипта Php, перезапуск через ajax • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1394
Имеется некий код на Js, который отправляет данные через ajax на серверный скрипт. Каждый скрипт может выполняться не более чем указано в директиве max_execution_time.
Требуется: отправлять данные на сервер, включать прогресбар и при подходе к max_exececution_time перезапускать скрипт пхп чтобы он дальше выполнял некие действия. Конечно же скрипт должен продолжать выполнять с момента перезапуска дальше задачу...

Итак собственно вопрос: это возможно? Куда копать?
lodar Отправлено: 17 Октября, 2013 - 22:40:22 • Тема: Документирование кода • Форум: Вопросы новичков

Ответов: 9
Просмотров: 427
Мелкий пишет:
Это позволяет и легко находить не настроенные параметры и лаконично обрабатывать необязательные.
Иногда предпочтительнее выбросить исключение, если элемент жизненно важен

Спасибо. Учел.
lodar Отправлено: 17 Октября, 2013 - 11:16:43 • Тема: Конструктор запросов к бд на ООП • Форум: Работа с СУБД

Ответов: 0
Просмотров: 645
Продублирую ответ из этой темы здесь, так как тема "документации кода" выходит за рамки работы с субд.

Попытался допилить либу под себя, с учетом возможностей 5.3. За основу взял из фреймворка Yii. Выложил на github. Был бы очень признателен в любой критике
lodar Отправлено: 17 Октября, 2013 - 10:18:37 • Тема: Документирование кода • Форум: Вопросы новичков

Ответов: 9
Просмотров: 427
tato пишет:
Могут возникнуть проблеммы если нет такого значения.

Я думал над этим, но потом решил, что если такого параметра не будет, то пусть лучше. возвращаться null. B док блоке описал @return соответствующий. На него и проверять (is_null), вместо "NOT SET". Или лучше вот так явно проверку проводить?

tato пишет:
array_walk( $parts, array( $this, 'quoteSimpleTableName' ) );

Чем лучше?
lodar Отправлено: 17 Октября, 2013 - 03:03:43 • Тема: Документирование кода • Форум: Вопросы новичков

Ответов: 9
Просмотров: 427
Мелкий пишет:
И раз класс явно называется DBSettings, то почему getDSN не в нём?
Почему сделано getProperty я понимаю, удобство обращения к массиву. Но почему бы для явным образом названного класса не повесить публичные getUsername, getPassword? Они лаконичнее, а изнутри могут проксировать к getProperty.

Поправил, исходя из вашего замечания. В общем жду критику, и хотелось бы побольше))). Спасибо.
lodar Отправлено: 16 Октября, 2013 - 12:53:39 • Тема: Документирование кода • Форум: Вопросы новичков

Ответов: 9
Просмотров: 427
Мелкий пишет:
Мне кажется логичным указать это в комментарии ко всему классу. Что от использования класса можно ожидать исключение с таким-то именем.
Здесь надо решить, что важнее - документация кода или усилия, на это затрачивающиеся. Если комментарий надо исправить в двух местах - когда-нибудь это будет не сделано. А противоречивая документация хуже её отсутствия.

Подумаю. Учту.

Мелкий пишет:

Хочу заметить по непосредственно коду - у вас очень загадочным образом размазаны настройки подключения. Почему dsn - в конструкторе, а логин и пароль - в подключении?
И раз класс явно называется DBSettings, то почему getDSN не в нём?

DSN - это же уже требование PDO. Поэтому его формированием занимается класс ответственный за соединение (создание экз. PDO). DBSetting чистый контейнер для входных данных, таких как имя юзера, бд и тд. Хотя возможно вы и правы.

Мелкий пишет:

Почему сделано getProperty я понимаю, удобство обращения к массиву. Но почему бы для явным образом названного класса не повесить публичные getUsername, getPassword? Они лаконичнее, а изнутри могут проксировать к getProperty.

Создавал на скорую руку. Идея такая посещала. Переделаю.

Мелкий пишет:

Ну и кидать исключения в конструкторе - не самая лучшая идея. Объект создаётся и больше не удаляется. В PHP это не столь важно, т.к. через доли секунды скрипт завершится и освободит все ресурсы, но стоит иметь в виду.


Учту. Не подумал.

А вообще я либу пишу для себя. За основу взял из фреймворка Yii. Выложил на github. Был бы очень признателен в любой критике.
lodar Отправлено: 16 Октября, 2013 - 02:21:02 • Тема: Документирование кода • Форум: Вопросы новичков

Ответов: 9
Просмотров: 427
Возник вопрос по документированию кода. Например есть некий класс, в нем метод который выкидывает исключение. Этот метод вызывается конструктором. Нужно ли документировать исключение в пояснениях конструктора?

PHP:
скопировать код в буфер обмена
  1.  
  2.     /**
  3.      * Инициализирует настройки, устанавливает соединение
  4.      * Базовый конструктор, инициализирует настройки, формирует строку dsn и устанавливает соединение
  5.      * @param DBSettings $settings данные для подключения к бд {@link http://php.net}
  6.      * @throws WDBException
  7.      * @since 0.0.1
  8.      */
  9.     public function __construct(DBSettings $settings) {
  10.         $this->_settings = $settings;
  11.         $this->_dsn = "mysql:host=" . $settings->getProperty(DBSettings::DBHOST) . ";dbname=" . $settings->getProperty(DBSettings::DBNAME);
  12.         $this->setPDO();
  13.     }
  14.  


Метод, вызывающий исключение

PHP:
скопировать код в буфер обмена
  1.  
  2.     /**
  3.      * Устанавливает соединение с бд, в случае ошибок формирует исключение PDOException
  4.      * Указывает атрибуты по умолчанию для установленного соединения
  5.      * @throws WDBException
  6.      * @since 0.0.1
  7.      */
  8.     private function setPDO() {
  9.         $user = $this->getSettings()->getProperty(DBSettings::DBUSER);
  10.         $pass = $this->getSettings()->getProperty(DBSettings::DBPASS);
  11.  
  12.         try {
  13.             $this->_pdo = new PDO($this->getDsn(), $user, $pass);
  14.             $this->setDefaultPDOAttributes();
  15.         } catch (PDOException $e) {
  16.             throw new WDBException($e);
  17.         }
  18.     }
  19.  
lodar Отправлено: 27 Сентября, 2011 - 15:15:06 • Тема: Не выводятся данные из Mysql • Форум: Вопросы новичков

Ответов: 3
Просмотров: 197
Было бы неплохо глянуть код. Так нечего Вам не подскажут.
lodar Отправлено: 05 Сентября, 2011 - 14:22:55 • Тема: как выполнить пост запрос, обойдя текущее время • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 86
algebra пишет:
например добавив к текущему времени 1 год
проблема в том что php-скрипт на удаленном сервере может обращаться к файлу куки у себя на сервере, либо содержать в своем коде переменную имя которой неизвестно

Не совсем понятна проблема, подробнее пожалуйста опишите суть проблемы.
lodar Отправлено: 30 Марта, 2010 - 15:49:35 • Тема: Распределение прав доступа • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3480
Jlblcblu пишет:
Добрый день, подсел на Ваш форум, почитал много интересного) И вот появился вопрос:

Нужно организовать разделение прав у нескольких пользователей.
А теперь подробней что да как:

Допустим у нас есть 3 пользователя:

Admin - можeт все
User_1 - может смотреть
User_2 - может смотреть, редактировать, удалять.
User_3 - ему доступ запрещен

Естественно админ может проставить кому что можно.

Каким образом лучше и правильней все это сделать? Буду благодарен за любую помощь, отвечу на дополнительные вопросы)

З.Ы.
Поиском пользовался, но то, что я нашел - не очень понравилось.

Лучше всего создать группы пользователей. Таким образом на будущее возможно расширять права не одного, а целой группы. Если использовать БД, то каждой группе назначай уникальный ид и соответственно проверку через ид на права.
lodar Отправлено: 20 Марта, 2010 - 20:48:30 • Тема: mysql сохранить в другую таблицу • Форум: Программирование на PHP

Ответов: 3
Просмотров: 303
Каждая из кнопок имеет свое имя name ="", можно сделать проверку мол если
if(isset($_POST['knopka1'])) {
здесь код
}
Вторую аналогично проверь.
lodar Отправлено: 19 Марта, 2010 - 03:10:47 • Тема: не работает curl • Форум: Программирование на PHP

Ответов: 5
Просмотров: 1134
Как я понял у меня неправильно подключена библиотека curl.
Лично мне не нравиться wamp. Уж если что-то использовать то это кроссплатформенное типа xamp. А лучше всего ставить все ручками.
Цитата:
Сервер под Win\Nix ?

В юникс подобных нету диска C:
lodar Отправлено: 19 Марта, 2010 - 03:04:57 • Тема: Подскажите чего не хватает • Форум: HTML, Дизайн & CSS

Ответов: 3
Просмотров: 1472
andrweb пишет:
Подскажите чего не хватает в дизайне http://d-ss[dot]ru cайта?

Советую сделать форму для формирования заказов.
Поля где-то такие: Имя, Фамилия, мыло, телефон, тип сайта для заказа.
lodar Отправлено: 06 Марта, 2010 - 00:35:06 • Тема: Помогите защититься от DOS атак • Форум: Администрирование Windows

Ответов: 11
Просмотров: 8793
Я с сервером виндовым не работал как таковым, приверженец линукса). В свое время очень сильно доссили веб-сервер, забивали канал, mysql бил ошибкуУлыбка. Настроил схему - фронтенд-бекенд + скриптик для отслеживания соединений больше 40 с одного айпи и последующим добавлением правила в фаервол. Сейчас даже slowloris положить не смогУлыбка. Что успешно делается с другими серверами).

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB