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

Zend Framework 2.0

  • kostyl

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

    Spritz 15 августа 2010 г. 0:55

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

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

    Spritz 15 августа 2010 г. 1: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 г. 9:48, спустя 8 часов 32 минуты 15 секунд

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

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

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

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

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

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

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

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

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

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

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

    Spritz 15 августа 2010 г. 11: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
  • Абырвалг

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

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

    ns Zend\Log;

    class Exception extends \Exception


    catch Zend\Log\Excception

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

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

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

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

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

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

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

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

    <?php

    return array(
    'namespaced' => array(
    'Bl\Core'    => 'code/core/',
    'Bl\Local'   => 'code/local/',
    'Bl\Modules' => 'code/modules/',

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

    return $this;
    }
  • kostyl

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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