Pull to refresh
22
0
Борис Тавадов @Borro

PHP developer

Send message
Есть отличное расширение для создания демонов на PHP arara/process
Я считаю, что нужно использовать в каждом php-проекте, где нужна хотя бы одна зависимость или это библиотека. Он решает проблему версионирования, подключения классов и даже поиска нужного пакета
Конечно. Но для многих есть плагины под популярные системы. А если это самопис — то придется самому писать и плагин для CI
Да, с тестами действительно неправ, т.к. это на самопис, а github.com/limb-php-framework/limb/tree/master/tests_runner
Я тоже предпочитаю знать, что я включаю в проект и как оно работает. Поэтому я буду подключать всё через composer, и пользоваться общепринятыми стандартами или библиотеками, которые этот стандарт поддерживают.
  • PSR-2 помогает сделать код более читабельным, а так же другим людям позволяет сразу же понят, как правильно писать (табы, пробелы, фигурные скобки, прочее)
  • PSR-4 помогает сделать структуру, в которой не нужно использовать в каждом файле include.
  • Composer помогает подключать библиотеки стандартно с помощью одной команды, и больше не думать как подключать каждую из библиотек
  • PHPUnit — признанный инструмент для написания unit-тестов. Я видел, что у вас тоже есть тесты, но они не стандартизированы, а значит ни одна система сборки их не сможет прогнать без доработки напильником.

Единственное от чего можно отказаться это от GrumPHP, но он мне очень нравится, т.к. проверяет код перед комитом (на стандарты, запускает тесты и прочее)
Я просто оставлю это здесь:
Чтобы не вставляло 6 часов надо:
  • $model = Torrents::findOne(['forum_id' => $data[0], 'topic_id' => $data[2]]); убрать за цикл и сделать полный фетч. Причем лучше без AR, массив должен состоять из ключей forum_id + '_' + topic_id, и значений true, например
    $exists = [];
    while (($row = $reader->read()) {
        $exists[$row['forum_id '] . '_' . $row['topic_id']] = true;
    }
    

    или просто сделайте уникальный ключ на forum_id + topic_id, а в insert добавьте ключик IGNORE
    В основном цикле заменяете if($model !== null) continue; на if (isset($exists[$data[0] . '_' . $data[2]])) continue;
  • После этого выкидываем вставку через AR и делаем опять же через DAO, причем вне цикла делаете prepare, а в цикле просто байндите значения.
  • if(!isset($data[0]) || !isset($data[1]) || !isset($data[2]) || !isset($data[3]) || !isset($data[4]) || !isset($data[5]) || !isset($data[6]))
    

    нужно заменить на count($data) > 1, и проверять if (!array_key_exists(6, $data)) { $data[6] = 0 } Бывает, что у некоторых топиков не бывает даты.
  • Старайтесь не делать лишних движений в большом цикле, поэтому стоит убрать все выводы на экран.
  • В конфиге сфинкса используйте sql_query_range

Мой индексатор индексирует за 200 секунд в 4 потока. Правда я не использую mysql вообще, всё сделано с помощью sphinx'а и его xmlpipe2. Правда пока я не доделал выдергивание категорий/подкатегорий. Может на досуге доделаю, чтобы формировал php-массив и далее его нужно будет просто инклудить в код. Я считаю, что mysql для этого избыточна.
Зачем велосипеды, если в sphinx можно напрямую загрузить csv?
Не хватает composer'а
Из перевода
8 Мб распределены по четырем большим страницам, а 1760 Кб — по стандартным. Мне это дало прирост производительности Zend в 3% при больших нагрузках.
Похоже сайт не особо обновляется. Вот для PHP поддержка YAML-1.2: github.com/symfony/yaml
Сатис работает на php в кроне, а отдаёт статику nginx'ом, никаких заморотов, зато полное версионирование ваших пакетов. Если нужно будет поставить предыдущию версию, она всегда будет в сатис.
Прямо в репозитории хранить нельзя, т.к. это лишний код в репозитории, который по факту не нужен. Если очень хочется, можете попробовать хранить как сабмодуль, но это тоже идея не самая хорошая.
Хранить нельзя. Чтобы зафиксировать версии, вам нужно хранить composer.lock в репозитории.
Если вы боитесь, что будут недоступны какие-то проекты и пакеты, воспользуйтесь проксированием packagist.org с помощью разных систем, например Satis
Потому что ошибка состояла, не в коде события, а в том что кнопка «ввод» зажата, а не возвращается в исходное положение.
Блин, я до вашего комментария наивно не предполагал ничего кроме стрекозы!
Если просто зайти на страницу, то логотип яндекса будет на русском, но щёлкнув по капче (чтобы обновить её) логотип яндекса пишется на английском.
Зато есть куча альтернативных клиентов, или вы можете сами написать, API открыто

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity