Как бы вы структурировали или лучший способ структурировать код в PHP? - PullRequest
0 голосов
/ 26 июня 2010

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

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

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 26 июня 2010

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

Быстрее

Чистый PHP быстрее и более совместим.Ваши дистрибутивы будут меньше.Это проще всего поддерживать?Ну, это может быть, если все сделано правильно.Крупные программные проекты, такие как Drupal или Wordpress, показывают, что проекты на основе Framework не легче поддерживать, чем чистый PHP.Чистый PHP все еще имеет некоторые встроенные классы, но в конечном итоге они возвращаются к функциям.Автозагрузка - это хорошо, но большие кодовые базы по-прежнему снижают производительность.

Лучше

Проекты на основе фреймворков, как правило, лучше поддерживать и работать в долгосрочной перспективе.Они медленнее из-за своей природы (автозагрузка снижает производительность, если у вас много разных путей в вашем пути включения или неправильно упорядоченный путь включения).Это также дает предустановленную структуру, так что другие могут подключиться и понять, что происходит быстрее.Большинство проектов Zend Framework выглядят одинаково, поэтому у вас будет больше шансов узнать, какой фрагмент кода выполняется.Это приводит к снижению производительности, и требуются внешние помощники, такие как кэши кодов операций.

Мое мнение

Выберите вариант «Лучше»: платформа с автозагрузкой.Большая работа уже была проделана для вас, поэтому вы будете быстрее выходить из ворот с точки зрения времени производства.Прямо сейчас я предлагаю Zend Framework плюс Doctrine.Это самый быстрый?Нет, но это легче поддерживать.

Если вам нужна постоянная скорость, перейдите на базовый PHP или используйте низкоуровневый фреймворк.ZF, Code Igniter, Symfony, все они получают удар по производительности по сравнению с ядром PHP.

0 голосов
/ 26 июня 2010

Думаю, вас заинтересует внедрение зависимостей Также используйте автозагрузку: это убийственная функция.Для БД используйте PDO, который является собственным уровнем базы данных PHP.

0 голосов
/ 26 июня 2010

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

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

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

Используйте автозагрузку для загрузки классов и доступа к экземплярам с помощью синглетонов:

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;
  } 
}

use:

$res=DB::i()->query("SELECT * FROM whatever");

создаст один экземпляр mysqli и всякий раз, когда вы будете обращаться к DB :: i() он вернет этот экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...