Обновить
4
0
Игорь@t1gor

Разработка web-сайтов и сервисов

Отправить сообщение
Спасибо за статью, будем ждать релиза. Есть небольшой вопрос: при переходе на новую версию, я так понимаю, что при миграции придется заморочиться с конфитурацией (читай все переделать)?
Мне кажется что тут ответа вам никто и не подскажет, просто надо пробовать и выбрать то, что подходит именно вам. Судя по Google-у, вам может подойти MailGun.
Так в этом же вся суть асинхронной отправки
Ну уж если так хотелось не использовать массивы и scandir, почему было бы не использовать RecursiveDirectoryIterator?
Все круто, сервис действительно удобный. Не понятно только зачем документацию переводить. Хоть тег поставьте, что ли.
svscorp уже отлично ответил на Ваш комментарий и я с ним полностью согласен. От только одно забыл — если папка зависимостей не
«vendor» — то путь к ней всегда можно посмотреть в composer.json и ее имя или положение относительно корня проекта не иммет никакого значения.
Вы не задумывались о том, что бывают проекты совсем без фреймворков например, где структура папок определяется фантазией и чувством прекрасного разработчика?
Какие-то аргументы в пользу «хорошая» и «плохая» можно услышать?

Я бы тоже с удовольствием выслушал.
Я думаю что автор имел в виду использование composer автозагрузки доя классов своего проекта, а не библиотек. В таком случае это очень даже имеет смысл.
Теперь с помощью Composer все зависимости будут установлены в папку vendor в корне вашего проекта

Согласно документации, папку можно поменять — директивой «vendor-dir»

Странно что вы не упомянули «require-dev», т.к. часто есть библиотеки которые нет смысла хранить на production сервере.
Теги очень точно отражают смысл статьи, но все-равно спасибо :)
Прегенерируете основные размеры?

Нет, только по реквесту.

Кешируете результат навсегда?

Если файл найден — всегда отдается файл. Только если его нет — ресайзим (создаем нужный файл по запрошеному пути). Плюс у нас CDN, так что после того, как файл найден и отдан нашим сервером — он уже будет доступен в CDN для всех следуюших запросов.
Спасибо за интересную статью. Мы в свое вермя решили не заморачиваться, а использовать следующую конструкцию:

<picture data-alt="Eine neue Versus Karte" class="picture loading"> 
    <!--[if IE 9]><video class="is-hidden"<![endif]--> 
    <!-- Generic wide screen -->
    <source media="(min-width: 1024px)" 
            srcset="/files/teaser-hero/_946x/18022015-Hero49.jpg, /files/teaser-hero/_1888x18022015-Hero49.jpg 2x">
    <\/source> 
    <!-- iPad lanscape --> 
    <source media="(min-device-width: 769px) and (max-device-width: 1024px)" 
            srcset="/files/teaser-hero/_944x/18022015-Hero49.jpg, /files/teaser-hero/_1888x/18022015-Hero49.jpg 2x">
    <\/source>
    <!-- iPad portrait --> 
    <source media="(min-device-width: 481px) and (max-device-width: 768px)" 
            srcset="/files/teaser-hero/_768x/18022015-Hero49.jpg, /files/teaser-hero/_1536x/18022015-Hero49.jpg 2x">
    <\/source>
    <!-- iPhone 3-4 landscape --> 
    <source media="(min-device-width: 321px) and (max-device-width: 480px)" 
            srcset="/files/teaser-hero/_480x/18022015-Hero49.jpg, /files/teaser-hero/_944x/18022015-Hero49.jpg 2x">
    <\/source>
    <!-- iPhone 3-4 portrait --> 
    <source media="(max-device-width: 320px)" 
            srcset="/files/teaser-hero/_280x/18022015-Hero49.jpg, /files/teaser-hero/_560x/18022015-Hero49.jpg 2x">
    <\/source>
    <!--[if IE 9]></video><![endif]--> 
    <img alt="Eine neue Versus Karte" 
            srcset="/files/teaser-hero/_1888x/18022015-Hero49.jpg 2x" 
            src="/files/teaser-hero/_946x/18022015-Hero49.jpg"> 
</picture>

а на сервере перенаправялем все запросы по /files/* на скрипт ресайза (который использует ImageMagic и отдает картинку правильного размера).
Из Вики:
On December 8, 2014 a variation of the POODLE vulnerability that impacted TLS was announced.[6]
Имеется в виду логические связанные. Так удобнее обычно для дальнейше обработки.
phpExcel дает возможность получить итераторы сторк и столбцов. Обернув их в IteratorIterator или FilterIterator можно получить достаточно крутые возможности, а именно:

  • Читать строки «пачками», например по 6 штук сразу. Этот пример актуален если нужно читать какую-то свзанную информацию из таблицы, в моем случае это были данные клиентов компании.
  • Читать только необходимые строки. Например только те, у которых в указанной ячейке нужное значение.


И прочее-прочее. Еще очень удобно такие штуки дебажить с помощью LimitIterator. Ну это так все, из собственного опыта.
Let the holy war begin! Уважаемый автор. Спасибо Вам большое за статью и старание, но пожалуйста — не пишите больше. Из-за таких статей люди потом php-шников презирают. Спасибо за понимание.
Спасибо за подборку, занимательно. Одно только бросается в глаза — с каких пор Drupal стал фреймворком? Всегда был Cms вроде.
В том числе. А еще можно было бы привести пример переопределения итератора для строк/столбцов.
prishelec, это-то как раз понятно. Я имел в виду какой-нибудь сложный пример с чтением\записью смерженных ячеек. Ну да ладно :)
Спасибо за статью, очень порадовали примеры со стилями. Не хватает только инструкции по merged cells.

Информация

В рейтинге
Не участвует
Откуда
Frankfurt am Main, Hessen, Германия
Дата рождения
Зарегистрирован
Активность