Створити та завантажити CSV на PHP
Розглянемо можливість швидкого створення CSV файлу з автоматичним скачуванням файлу. Розглянемо формування, роздільники та header для можливості завантажити файл.
Щоб не описувати повторно, даю посилання деталі . На основі цієї теми, ми намагатимемося запустити воркер через консоль і дати йому якусь роботу через клієнт.
Внесемо до коду деякі зміни. Замість збереження даних у файлі, ми будемо використовувати виведення в консоль.
file_put_contents("php://stdin", 'рядок виведення');
Продемонструю файл server.php із новими змінами.
<?php
$gmw = new GearmanWorker();
/**
* Поки розглянемо ініціалізацію addServer() за замовчуванням
* Цей метод потрібен для оголошення, на якій машині працює цей worker
*/
$gmw->addServer();
/**
* log_client - з боку клієнта використовувати цей alice
* work_log - функція, на яку кидатиме воркер, якщо
* на alice log_client прийде щось.
*/
$gmw->addFunction('log_client', 'work_log');
/** /> * Спеціально зроблено заціювання
* Якщо оголосити просто $gmw->work(), то завдання завершиться відразу ж після виконання. Тобто спрацює тільки раз.
*/
while($gmw->work());
/**
* Вписує логи у файл
* @param JSON $param - Приймає тільки рядок, тому передаємо в json якщо потрібно
  ;*/
function work_log($param) {
/*Достає дані, що передаються клієнтом*/
$data = $param->workload();
/**
* Штучно робимо навантаження, щоб була імітація великого очікування.
* Тут ми побачимо, що скрипт клієнта не чекатиме закінчення 100 секунд,
* а повісить завдання і забуде про неї.
*/
for ($i = 0; $i < 100; $i++) {
sleep(1);
file_put_contents("php://stdin", $data); // Змінили для виведення в консоль
}
}
Запуск з консолі здійснюється так (наш проект лежить у директорії /var/www/test1.loc):
php /var/www/test1.loc/server.php
Цей рядок у консолі повісить воркер в очікуванні. Він буде чекати на роботу поки не закриється консоль або не скінчиться час очікування max_input_time в php.ini .
Видно, що консолі чекає (Warning свідчить про можливу проблему в самій бібліотеці Gearman). Після запуску client.php наочно видно, що у браузері все завершилося, а консоль працює сама собою. Якщо консоль закрити, і запустити потім заново воркер, він продовжить роботу далі з того моменту, на якому зупинився.
Розглянемо можливість швидкого створення CSV файлу з автоматичним скачуванням файлу. Розглянемо формування, роздільники та header для можливості завантажити файл.
Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.
Розглянемо варіанти популярних варіантів зберігання товарів у кошику в інтернет-магазині. Позначимо плюси та мінуси таких зберігання. Розглянемо варіанти довгострокового зберігання корзини.
Створення ключа для imageCMS 4.9-4.12.1 Pro та Pre. Для отримання авторизуватися.
При запуску скрипта з консолі немає DOCUMENT_ROOT в $_SERVER. Спробуємо обійти це своїми шляхами, відловити директорію файлу.
Після розробки будь-якого інструменту на PHP стає питання, наскільки створений код ресурсний і які елементи він зачіпає ще. Розглянемо установку xhprof, налаштування та розглянемо способи роботи з xhprof.
Розберемо можливість об'єднання умов у запиті груп у Propel. Розглянемо приклад фільтрації по полях за допомогою -> condition () і -> combine ().
Зіткнувся із проблемою авторизації 1с на сайті. Сервер чомусь не приймав від неї параметр PHP_AUTH_USER і PHP_AUTH_PW. Розглянемо докладніше рішення та обхід даних параметрів $_SERVER .