LINUX.ORG.RU

История изменений

Исправление no-such-file, (текущая версия) :

И есть сторонняя библиотека, которая умеет, но фреймворк про нее ничего не знает. И как будете их дружить без костылей?

Если говорить о пыхе, то фреймворк, если он современный, использует для разбора запроса компонент, который реализует какой-то интерфейс - PSR-7 или специфичный для фреймворка. Сам этот компонент фреймворк берёт из di контейнера, который инициализируется на стадии бутстрапа - что-нибудь вроде $app->set('request.class', \Request\Implementation::class). Т.е. чтобы подружить библиотеку с фреймворком, нужно написать врапер, который будет реализовать интерфейс который хочет фреймворк и в конфиге указать этот врапер. Либо, если всё на самом деле современное, библиотека, как и фреймворк должны использовать PSR-7 и тогда вообще ноль проблем, просто указываем в конфиге эту библиотеку, ну может быть ещё небольшую функцию специфичной для этой библиотеки инициализации.

Сложно? А теперь представь что код самописный и ты использовал одну библиотеку для реквеста (или вообще ни одной, лепил _POST) и тебе нужно прикрутить другую - вперёд, перелопачивать весь код от и до.

Исправление no-such-file, :

И есть сторонняя библиотека, которая умеет, но фреймворк про нее ничего не знает. И как будете их дружить без костылей?

Если говорить о пыхе, то фреймворк, если он современный, использует для разбора запроса компонент, который реализует какой-то интерфейс - PSR-7 или специфичный для фреймворка. Сам этот компонент фреймворк берёт из di контейнера, который инициализируется на стадии бутсnрапа - что-нибудь вроде $app->set('request.class', \Request\Implementation::class). Т.е. чтобы подружить библиотеку с фреймворком, нужно написать врапер, который будет реализовать интерфейс который хочет фреймворк и в конфиге указать этот врапер. Либо, если всё на самом деле современное, библиотека, как и фреймворк должны использовать PSR-7 и тогда вообще ноль проблем, просто указываем в конфиге эту библиотеку, ну может быть ещё небольшую функцию специфичной для этой библиотеки инициализации.

Сложно? А теперь представь что код самописный и ты использовал одну библиотеку для реквеста (или вообще ни одной, лепил _POST) и тебе нужно прикрутить другую - вперёд, перелопачивать весь код от и до.

Исправление no-such-file, :

И есть сторонняя библиотека, которая умеет, но фреймворк про нее ничего не знает. И как будете их дружить без костылей?

Если говорить о пыхе, то фреймворк, если он современный, использует для формирования ответа компонент, который реализует какой-то интерфейс - PSR-7 или специфичный для фреймворка. Сам этот компонент фреймворк берёт из di контейнера, который инициализируется на стадии бутсnрапа - что-нибудь вроде $app->set('request.class', \Request\Implementation::class). Т.е. чтобы подружить библиотеку с фреймворком, нужно написать врапер, который будет реализовать интерфейс который хочет фреймворк и в конфиге указать этот врапер. Либо, если всё на самом деле современное, библиотека, как и фреймворк должны использовать PSR-7 и тогда вообще ноль проблем, просто указываем в конфиге эту библиотеку, ну может быть ещё небольшую функцию специфичной для этой библиотеки инициализации.

Сложно? А теперь представь что код самописный и ты использовал одну библиотеку для реквеста (или вообще ни одной, лепил _POST) и тебе нужно прикрутить другую - вперёд, перелопачивать весь код от и до.

Исходная версия no-such-file, :

И есть сторонняя библиотека, которая умеет, но фреймворк про нее ничего не знает. И как будете их дружить без костылей?

Фреймворк, если он современный, использует для формирования ответа компонент, который реализует какой-то интерфейс - PSR-7 или специфичный для фреймворка. Сам этот компонент фреймворк берёт из di контейнера, который инициализируется на стадии бутсnрапа - что-нибудь вроде $app->set('request.class', \Request\Implementation::class). Т.е. чтобы подружить библиотеку с фреймворком, нужно написать врапер, который будет реализовать интерфейс который хочет фреймворк и в конфиге указать этот врапер. Либо, если всё на самом деле современное, библиотека, как и фреймворк должны использовать PSR-7 и тогда вообще ноль проблем, просто указываем в конфиге эту библиотеку, ну может быть ещё небольшую функцию специфичной для этой библиотеки инициализации.

Сложно? А теперь представь что код самописный и ты использовал одну библиотеку для реквеста (или вообще ни одной, лепил _POST) и тебе нужно прикрутить другую - вперёд, перелопачивать весь код от и до.