Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как бы вы структурировали или как лучше всего структурировать код на PHP?

Автор вопроса: cusspvzОтветов: 4

я хочу знать, как лучше всего (быстрее и лучше) структурировать код на PHP.

Некоторые люди сохраняют мастер-класс с функциями, подклассами и переменными в уникальной глобальной переменной, например, в случае $modx CMS.

Каковы ваши методы структурирования?
И как вы подключаетесь к своей БД?
Все ли вы предпочитаете PHP-фреймворки, такие как PHPCake?
Как вы структурируете Plubic vars (конфигурация) и Private vars (временные или работающие программы? вары)?

Причина моих вопросов в том, что я не хочу начинать программировать статично, с сильной базой. В настоящее время я программирую с помощью ModX framework/CMS.

ПРИМЕЧАНИЕ. Пожалуйста, обосновывайте каждый раз, когда вы голосуете -1 за ответ!

Заранее спасибо (извините за мой плохой английский)

  • Ваш вопрос кажется очень общим... В любом случае не рекомендуется хранить все в одной глобальной переменной! mexique1 26.06.2010
  • Насколько общий? я не хочу знать структуру, которую каждый использует, чтобы использовать лучше и начать программировать таким образом. Извините за мой английский... cusspvz 26.06.2010

frameworksphpstructure

Ответы

Ответ 1 · рейтинг 2 · dragonmantank

Быстрее и лучше вместе не идут.

Быстрее

Чистый 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.

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

Предпочитайте использовать фреймворки, основанные на MVC а> узор. Таким образом, ваш код будет разделен на модель, представление и контроллер.

  • Модель - это место, где вы размещаете код для управления данными (db,...)
  • Представление - это место, где вы размещаете код пользовательского интерфейса.
  • Контроллер - это место, где работает логика вашего приложения.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы