25 апреля 2024
Структура MVC
Структура MVC

Вроде созрел я для того чтобы начать использовать php-фреймворки. Наэкспериментировался вдоволь — получился свой, достаточно сносный фреймворк. Конечно Красотой он не блещет, так как разрабатывался по нуждам и по мере появления знаний в этой области. Но захотелось попробовать чего-нибудь готового, чтобы можно было: раз и все добавилось! Как в 1С 🙂

Изучил, что есть. Посмотрел сравнения. Решил попробовать Yii, как один из самых быстрых и перспективных. Тем более, что прямого сравнения с голым PHP я сходу не нашел. В принципе все удобно и понятно. Но… скорость меня не обрадовала. На локальной машине страница, грузящая три запроса и строящая все, что мне нужно, генерировалась от 0.1 до 0.3 секунды, с 8 запросами 0.3-0.6 секунд. А простейшая страничка со списком пользователей (1 запрос по идее) в Yii генерировалась в среднем 1.2-1.7 секунды. Выводы неутешительные. Разница минимум в 5 раз.

Тут хвастаюсь:)
Понятно, что на хостинге с моим фреймворком страница генерируется еще в 50 раз быстрее, но все же такая разница покоя не дает. Если бы я изначально начинал писать на Yii, то как-то смирился бы с этим. А так, жалко терять такой запас скорости. Придется оставаться на своем и приводить в порядок. И это еще у меня совсем не используется кэширование. И шаблоны используются директивные. Главный минус того, что сейчас — нет полноценного MVC. Есть ядро, БД, общий контроллер, и еще несколько классов, к которым обращаются модули при визуализации. Таким образом, количество обращений к БД минимизировано. Модули вызываются только по необходимости. Кэширование пока не использовал за ненадобностью. Но вот сделать быстро новую операцию, как это можно в Yii, проблематично.

Конечно же, попробую сделать хотя бы частично проект на Yii, чтобы изучить его и в дальнейшем все же пользоваться готовым. Скорость разработки все же важнее скорости работы. Но желание изобретать велосипеды периодически дает о себе знать и случаются такие вот спорные ситуации ) Но с ассемблера слез когда-то, так что, и здесь, думаю, все сведется к ускорению разработки.

Кстати, для работы с MySql использую goDB, поэтому проблем с запросам вообще никаких не знаю. И скорость у нее замечательная.

UPD:  комп подразгрузился, тайминги в разы уменьшились, но соотношение 1 к 5 осталось.
UPD2: перешел на django. Про PHP вспоминаю редко.