#php #laravel-4
#php #laravel-4
Вопрос:
В приложении Laravel у меня есть система опроса messenger. При этом я предполагаю, что каждый раз, когда пользователь делает запрос, все зависимости загружаются с каждым запросом. На самом деле это не та функция, которую я очень люблю видеть, какую нагрузку она потенциально создает.
Есть ли способ обойти большинство требований Laravel для запуска.
Я действительно хочу только вставить сообщение в базу данных и выбрать ответ на возврат и вернуть его как JSON. Поэтому мне не нужны какие-либо представления, контроллеры или модули, и я хочу сохранить их как можно более чистыми. На самом деле я даже не хочу использовать PDO и определенно не конструктор запросов.
Я предполагаю, что это экономит много ресурсов сервера, просто чтобы перейти от
Route::post(... function({}));
Кто-нибудь может подтвердить?
Комментарии:
1. Проблема с этим вопросом заключается
I'm guessing
в том, что …. не угадывайте, сначала убедитесь, что это так2. Спасибо за ваш комментарий. Можете ли вы порекомендовать способ тестирования без выполнения полного нагрузочного теста? Я не могу, что является проблемой в данном конкретном случае. Если бы это зависело от меня, я бы обошел всю структуру Laravel и перешел в другой домен. Но это зависит не от меня, поэтому, к сожалению, я должен догадаться, поэтому мне нужно подтверждение, основанное на опыте, которого у меня нет в данном конкретном случае.
3. Один из способов проверить это — посмотреть, как работает автозагрузчик в Laravel, посмотреть, как он загружает только то, что нужно, когда это необходимо
Ответ №1:
Многие компоненты Laravel загружаются «лениво», поэтому они загружаются только тогда, когда они необходимы.
Есть ли способ обойти большинство требований Laravel для запуска. Я действительно хочу только вставить сообщение в базу данных и выбрать ответ на возврат и вернуть его как JSON. Поэтому мне не нужны какие-либо представления, контроллеры или модули, и я хочу сохранить их как можно более чистыми. На самом деле я даже не хочу использовать PDO и определенно не конструктор запросов.
Мне кажется, вы не хотите использовать большую часть фреймворка Laravel. Так что, если бы я был на вашем месте — не используйте фреймворк Laravel. Просто используйте компонент запроса сам по себе или даже используйте базовый компонент Symphony.
Однако, как побочный момент, кажется, что вы пытаетесь оптимизировать что-то, о чем вы даже не знаете, что вам нужно оптимизировать это в первую очередь. Сосредоточьтесь на написании качественного, тестируемого, настраиваемого кода.
Другим вариантом является «легкая» платформа, такая как Silex
Комментарии:
1. Я думаю, вы неправильно поняли. Основной проект уже построен в Laravel. Messenger — это расширение. Как я уже упоминал, если бы это зависело от меня, я бы не использовал Laravel в этом случае и использовал другой домен (через CORS) для проведения опроса. Но, видимо, это не вариант. Итак, я застрял с Laravel на этом и, таким образом, хочу сделать его как можно более легким. Это предпочтительно означает даже не использовать встроенные функции и, таким образом, создавать собственные подключения к базе данных и тому подобное. Silex кажется забавным, хотя для этого 1
2. Но зачем использовать ваши собственные соединения / функции? Почему бы просто не использовать Laravel? Я думаю, что вы переоцениваете, насколько «большой» Laravel, особенно когда по сути он будет выполнять код того же типа, что и вы, если будете кодировать его самостоятельно. Если вы не используете действительно огромную массивную серверную инфраструктуру, вы просто не получите никакой реальной заметной разницы….
3. Плюс — если основной проект уже собран в Laravel — тогда вы должны продолжать использовать Laravel повсюду. Переписывать много кода для подраздела — это безумие — вы добавляете много обслуживания кода в проект и вызовете проблемы в дальнейшем, либо для себя, либо для другого разработчика, который может взять на себя весь проект.
4. Это именно моя точка зрения. Как я могу обойти laravel. Laravel загружает все классы, выполняя функцию spl_autoload_register() . Это слишком много «обязательных» для запуска на любом уровне, если вы хотите вставить сообщение размером с твит. Более того, опрос — не самая экономичная технология. Поэтому в отношении загрузки страницы веб-сайта я бы полностью согласился, но не для опроса. Мы говорим о подключении с интервалом в 1 или 2 секунды для каждого пользователя (!). PHP-соединение остается открытым до тех пор, пока страница не будет отправлена обратно. Чем короче это время, тем больше подключений.
5. Вот почему возникает вопрос: какую самую быструю загрузку может выполнить экземпляр Laravel и как вы это делаете. Но, основываясь на ответе Марка и небольшом копании, я теперь понимаю его точку зрения. Для этого требуется все, независимо от того, что вы используете. Но он не загружается, пока вы не запросите одну из его функций. Итак, я доволен этим ответом, который заключается в следующем: более быстрого способа нет, просто запросите меньше функций Laravel, и это будет быстрее (или, по крайней мере, это то, что я получил от него)