Как бы вы структурировали или как лучше всего структурировать код на PHP?
Автор вопроса: cusspvzОтветов: 4
я хочу знать, как лучше всего (быстрее и лучше) структурировать код на PHP.
Некоторые люди сохраняют мастер-класс с функциями, подклассами и переменными в уникальной глобальной переменной, например, в случае $modx CMS.
Каковы ваши методы структурирования? И как вы подключаетесь к своей БД? Все ли вы предпочитаете PHP-фреймворки, такие как PHPCake? Как вы структурируете Plubic vars (конфигурация) и Private vars (временные или работающие программы? вары)?
Причина моих вопросов в том, что я не хочу начинать программировать статично, с сильной базой. В настоящее время я программирую с помощью ModX framework/CMS.
ПРИМЕЧАНИЕ. Пожалуйста, обосновывайте каждый раз, когда вы голосуете -1 за ответ!
Заранее спасибо (извините за мой плохой английский)
Ваш вопрос кажется очень общим... В любом случае не рекомендуется хранить все в одной глобальной переменной! mexique1 26.06.2010
Насколько общий? я не хочу знать структуру, которую каждый использует, чтобы использовать лучше и начать программировать таким образом. Извините за мой английский... cusspvz 26.06.2010
Чистый PHP быстрее и совместимее. Ваши дистрибутивы будут меньше. Это самый простой в обслуживании? Ну, это может быть, если сделать правильно. Крупные программные проекты, такие как Drupal или Wordpress, показывают, что проекты на основе Framework не легче поддерживать, чем чистый PHP. Чистый PHP по-прежнему имеет несколько встроенных классов, но в конечном итоге они возвращаются к функциям. Автозагрузка - это хорошо, но большие базы кода по-прежнему снижают производительность.
Лучше
Проекты на основе фреймворка, как правило, лучше поддерживать и работать с ними в долгосрочной перспективе. Они медленнее из-за своей природы (автозагрузка снижает производительность, если у вас много разных путей в пути включения или плохо упорядоченный путь включения). Он также дает предустановленную структуру, чтобы другие могли быстрее понять, что происходит. Большинство проектов Zend Framework выглядят одинаково, поэтому у вас будет больше шансов найти, какая часть кода выполняется. Производительность снижается, и требуются внешние помощники, такие как кэши кода операции.
Мое мнение
Выберите вариант "Лучше": фреймворк с автозагрузкой. Большая часть работы уже сделана за вас, так что вы будете готовы к работе быстрее с точки зрения времени производства. Прямо сейчас я предлагаю Zend Framework плюс Doctrine. Это самый быстрый? Нет, но за ним легче ухаживать.
Если вам нужна абсолютная скорость, выберите ядро PHP или создайте собственную низкоуровневую структуру. ZF, Code Igniter, symfony - все они теряют производительность по сравнению с основным PHP.
Ответ 2 · codez
Используйте автозагрузку для загрузки классов и доступа к экземплярам через синглтоны:
class DB extends mysqli{
private static $instance;
private function __construct(){
parent::__construct(DB_HOST,DB_LOGIN,DB_PASS, DB_DB);
$this->set_charset("utf8");
$this->autocommit(false);
}
public static function i() {
if (!self::$instance instanceof self){
self::$instance = new self;
}
return self::$instance;
}
}
использовать:
$res=DB::i()->query("SELECT * FROM whatever");
он создаст один экземпляр mysqli, и всякий раз, когда вы будете обращаться к DB::i(), он вернет этот экземпляр.
Ответ 3 · Savageman
Я думаю, вас заинтересует внедрение зависимостей. Также используйте автозагрузку: это убийственная функция . Для БД используйте PDO, который является собственным уровнем базы данных PHP.
Ответ 4 · Ed.
Использование фреймворка - лучший способ, чем писать все с нуля, поскольку многое из того, что вам нужно, уже сделано.