ФорумПрограммированиеPHP для идиотов → Zend Framework 2.0

Zend Framework 2.0

  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 14 августа 2010 г. 16:55

    Ссыль по теме http://devzone.zend.com/article/12385-First-Development-Milestone-of-ZF-2.0-Released
    Но! Я хотел спросить ибо я нуб по ходу, почему удалили все вызовы require_once. Из-за неймспейсов? Или есть еще причины?
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 14 августа 2010 г. 17:16, спустя 21 минуту 14 секунд

    потому что они лишние на этом празднике жизни. Есть autoload {+++69+++} презентация в тему с ZFConf http://www.slideshare.net/zfconf/what-news-zend-framework-20-brings-to-us {+++129+++} имхо то, что они предлагают с исключениями - это пиздец просто какой-то. Ни в какие ворота не лезет
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 1:48, спустя 8 часов 32 минуты 15 секунд

    Ты про отдельные интерфейсы исключений для каждой библиотеки? На мой взгляд дак наоборот очень даже правильное решение
    Work, buy, consume, die
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 2:42, спустя 53 минуты 59 секунд

    да, про них. Не знаю, мне кажется это задротством. Если в каждой библиотеке свой интерфейс, унаследованный от \Exception - да, Ъ, сам так делаю. Но зачем там еще интерфейс? Тем более пустой
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 2:47, спустя 5 минут 4 секунды

    контрактное программирование - ты работаешь только с интерфесами
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 3:25, спустя 37 минут 24 секунды

    чтобы написать
    catch (\my\namespace\Exception $excp)
    {
    // тут код для обработки исключений, сгенерировынных только либой \my\namespace
    }
    там же даже на слайде нарисовано =)
    так как php не поддерживает множественного наследования, а исключения могут наследоваться от разных типов исключений, потому интерфейс, по моему все ясно как божий день
    Work, buy, consume, die
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 3:32, спустя 7 минут 14 секунд

    как-то так
    namespace  \super\stack;
    interface Exception
    {}

    class UnderflowException extends \UnderflowException implements Exception
    {}

    class OverflowException extends \OverflowException implements Exception
    {}

    catch (\super\stack\Exception $e)
    {
    // тут только обработка исключений из либы \super\stack
    }
    catch (UnderflowException $e)
    {
    // тут исключения UnderflowException, кроме \super\stack\UnderflowException
    }
    catch (OverflowException $e)
    {
    // тут исключения OverflowException, кроме \super\stack\OverflowException
    }
    Work, buy, consume, die
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 15 августа 2010 г. 3:34, спустя 1 минуту 41 секунду

    ns Zend\Log;

    class Exception extends \Exception


    catch Zend\Log\Excception

    не? {+++65+++} а, ты дописал. Ну в общем-то да
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 4:41, спустя 18 дней 1 час 7 минут

    потому что они лишние на этом празднике жизни. Есть autoload

    блядь, внатуре лишние сука….
    пиздец include_path на Zend ставлю, говорит типа не могу передекларировать класс, убиваю - пишет эти ёбаные No such file or directory…. Бля и это только в 2.0 сделали - дибилы.
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 4:51, спустя 10 минут 37 секунд

    нинаю, у меня все заебато подключается:

    <?php

    return array(
    &#39;namespaced&#39; => array(
    &#39;Bl\Core&#39;    => &#39;code/core/&#39;,
    &#39;Bl\Local&#39;   => &#39;code/local/&#39;,
    &#39;Bl\Modules&#39; => &#39;code/modules/&#39;,

    &#39;Symfony\Component&#39; => &#39;code/vendors/Symfony/Component/&#39;
    ),
    &#39;prefixed&#39;   => array(
    &#39;Twig&#39; => &#39;code/vendors/Twig/&#39;,
    &#39;Zend&#39; => &#39;code/vendors/Zend/&#39;
    ),
    &#39;pathes&#39;     => array(
    &#39;.&#39;,
    &#39;code/vendors/&#39;
    ),
    );
    {+++91+++} pathes сюда отправляются
    	/**
    *
    * @param array $pathes
    * @return Loader
    */
    public function setIncludePathes(array $pathes)
    {
    $pathes = array_map(&#39;realpath&#39;, $pathes);
    set_include_path(implode(PATH_SEPARATOR, $pathes));

    return $this;
    }
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 5:00, спустя 8 минут 46 секунд

    Абырвалг, у меня там просто все на автолоаде, пришлось дописать Zend_Loader::loadClass($className);
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 5:03, спустя 3 минуты 2 секунды

    у меня там просто все на автолоаде

    то же самое и у меня
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 6:56, спустя 1 час 52 минуты 47 секунд

    Абырвалг, ну мож не так сказал, у меня не было вообще нигде set_include_path
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 7:09, спустя 12 минут 42 секунды

    так в том-то и дело, что нужно выставить: один для своих либ и тех, которые без include_once (&#39;.&#39;), другой для таких как ZF1 (&#39;code/vendors/&#39;).

    Либо хуячь по зендовским файлам поиском и заменой: &#39;include_once&#39; на &#39;//include_once&#39; меняя.
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 2 сентября 2010 г. 7:33, спустя 23 минуты 48 секунд

    Абырвалг, так я и выставил, просто мои либы тоже в vendors лежат ))
    а в автолоад добавил просто
            if (false !== stripos($className, &#39;Zend_&#39;)) {
    Zend_Loader::loadClass($className);
    return true;
    }

Пожалуйста, авторизуйтесь, чтобы написать комментарий!