1. PHP / Говнокод #11743

    +53

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public function __construct() {
    	$this->em = \Zend_Registry::get('em');
    	$this->_pid = mysql_connect(
    								$this->em->getConnection()->getHost(),
    								$this->em->getConnection()->getUsername(), 
    								$this->em->getConnection()->getPassword());
    	mysql_select_db( $this->em->getConnection()->getDatabase(), $this->_pid); 
    }

    Запостил: shmaltorhbooks, 10 Сентября 2012

    Комментарии (10) RSS

    • нелогично, если уж используем зенд, то почему не зенд-дб?
      Ответить
      • Ну как бы можно понять наверное... Мой единственный опыт работы с PHP - Zend_Amf из которого для нормальной работы пришлось выпилить какую-то хрень типа Zend_Loader или Zend_Class_Loader - уже не вспомню и еще что-то. Иначе нужно было как-то через задний проход загружать части кода + очень специфически называть файлы.
        Ответить
        • > Иначе нужно было как-то через задний проход загружать части кода
          зачем?
          по Zend Conventions называем классы по схеме A_B_C и кладем в папки A/B/C.php, после чего они находятся сами, что может быть проще?
          Ответить
          • Зачем: Вначале был AMFPHP, его автор потом бросил, но кто-то из активных участников понес проект в Зенд, и его там приняли. Старый код, который работал с этой библиотекой сам загружал классы, и тут его решили переделать на зендовский манер. Это было абсолютно лишним, и, мало того что изза этого нужно было переписывать PHP часть, так еще и клиентскую часть тоже. При чем из стратегических соображений загружаемые классы нельзя было складывать в ту же папку, откуда Зенд их инклюдил, а как минимум на директорию выше, а для таких ситуаций их лоадер не предназначен. Да и вообще какой-то не пришей кобыле хвост класс - взять нормально работающую require / require_once и переделать в какое-то неюзабильное говно с непонятной целью и кучей ошибок на пустом месте.
            Кроме того, зендовские классы все равно нужно патчить, если уж их использовать с AMF. По крайней мере - выбросить все ошибки и заменить на что-то свое (зендовские ошибки пишутся вместе с сериализованными сообщениями в один поток, и вместо того, чтобы что-то сообщить об ошибке превращают даже какую-то вменяемую другую информацию, которую туда же записали в месиво, которое нет возможности разобрать). Всю работу с файловой системой - тоже выбросить, ну и т.д.
            Это скорее не вина Зенда а того человека, который туда эту библиотеку добавил: тем, кому нужна эта библиотека Зенд совсем не нужен, и, вполне возможно, что обратное тоже верно - я никогда не спрашивал.
            Ответить
            • кастомный лоадер?
              Ответить
              • Я не знаю зачем это нужно. require / require_once как-то всегда работал. Любые попытки, которые я видел к нему что-то дописать ничего хорошего не делали.
                Ответить
                • это тот же require, но плюс в том, что не нужно его писать, и не нужно знать точных путей... и совместимость остается

                  поясню: скажем, у нас есть зендовский лоадер, и куча require_once - тогда все будет валиться. если же расширить зендовский загрузчик, чтобы искал, скажем, в нужной директории, а уж потом стандартным зендовским способом, и убрать require_once - оба способа хранения классов будут допустимыми
                  Ответить
                • Я честно не знаю как именно сделан авто лоадер у зенда но если он использует SPL то он гораздо лучше чем require / require_once т.к. фактическая загрузка файла происходит только при первом обращении к классу.
                  Ответить
                  • > фактическая загрузка файла происходит только при первом обращении к классу.
                    Особенно полезная вещь, когда имя класса который нужно загрузить указывает клиент (именно так это происходит в AMF).

                    > это тот же require, но плюс в том, что не нужно его писать, и не нужно знать точных путей
                    Это как раз и есть недостаток. Не просто нужно, а необходимо знать точные пути. Нужно обязательно писать что загружается. Иначе - см. выше.
                    Ответить
    • Насколько я понимаю - это какой-то грязный хак для использования множественных баз при использовании доктриновских соединений?
      Ответить

    Добавить комментарий