Я разрабатываю веб-приложение, использующее php. Он будет использовать базу данных mySQL для хранения. Но приложение может обновиться в будущем, поэтому я хотел бы знать, есть ли какие-либо рамки для меня, чтобы уменьшить боль при обновлении структуры базы данных. Я знаю, что существует фреймворк cakePHP. И приложение будет развертываться на большем количестве серверов в будущем, кластеров, есть ли какая-то особая потребность, прежде чем приложение начнет писать. Большое спасибо.
CakePHP - отличная платформа, но если вы ожидаете, что ваше веб-приложение будет масштабироваться для более высокого трафика в будущем, я не совсем уверен, насколько хорошо CakePHP будет обрабатывать большие нагрузки.
Я предлагаю попробовать Yii, который похож на CakePHP, но обеспечивает встроенную поддержку кэширующих решений, таких как APC и MemCached, что обеспечит огромные преимущества для снижения загрузки базы данных при интенсивном трафике.
Здесь очень подробное и подробное введение и учебник для начала работы с Yii:
http://blog.dmcinsights.com/series/learning-the-yii-framework/
И вот ссылка на блог программиста, объясняющий, почему он выбрал Yii над Zend или CakePHP, которые могут вам помочь:
http://blog.ryanlahue.com/2009/12/yii-framework-choosing-best-web.html
Надеюсь, это поможет!
если вы хотите использовать Framework, я бы предложил Zend Framework от создателей PHP. Если вам нужно только переключить сервер базы данных в будущем:
использовать PDO для запросов/подключений к базе данных. PDO включен в PHP5 и позволяет вам переключиться с (пример) MySQL на MSSQL или с SQLITE на MYSQL.
Я бы рекомендовал ruckusing отслеживать схему вашей базы данных. CakePHP имеет свой SchemaShell, который должен делать то же самое, но я обнаружил, что он не работает слишком хорошо.
Что касается масштабируемости, можно рассмотреть ряд вещей, которые трудно перечислить здесь. Рамка, подобная Cake, может помочь вам абстрагировать некоторые вещи, которые могут помочь позже при масштабировании до большего количества серверов. Например, используя Cakes SessionComponent, вы можете полностью абстрагировать сеансы и позже переключиться с обработки сеанса PHP на хранение сеансов в центральной базе данных, что может быть или не быть значительным препятствием при желании масштабировать.