Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP 4 никак не упокоят
 
 автор: cheops   (14.08.2008 в 12:02)   письмо автору
 
 

Выпущен релиз PHP 4.4.9, несмотря на твердые обещания больше эту ветку не поддерживать начиная с 1 января 2008 года. Тем не менее разработчики выпустили очередной последний релиз.

В ветке 5.3 наконец добавили пространство имен.

http://www.php.net/

  Ответить  
 
 автор: mechanic   (14.08.2008 в 12:22)   письмо автору
 
   для: cheops   (14.08.2008 в 12:02)
 

> В ветке 5.3 наконец добавили пространство имен.

жаль не множественное наследование

  Ответить  
 
 автор: Axxil   (14.08.2008 в 12:28)   письмо автору
 
   для: mechanic   (14.08.2008 в 12:22)
 

> жаль не множественное наследование

Зачем оно нужно?
Можете привести пример когда без него не обойтись?

  Ответить  
 
 автор: mechanic   (14.08.2008 в 12:30)   письмо автору
 
   для: Axxil   (14.08.2008 в 12:28)
 

"обойтись" можно и без ооп

  Ответить  
 
 автор: Axxil   (14.08.2008 в 12:34)   письмо автору
 
   для: mechanic   (14.08.2008 в 12:30)
 

начинается...

Я конкретный вопрос задал.
Если вы пишете что вам не хватает множественного наследования, значит есть на то причины. Вот я и поинтересовался где такая необходимость у вас возникала.

А так просто выкрик с места получился.

  Ответить  
 
 автор: Lelik   (14.08.2008 в 13:26)   письмо автору
 
   для: Axxil   (14.08.2008 в 12:34)
 

есть такие ситуации, где множественное наследование в самый раз:

class SQL - отвечает за работу с БД
class File - работа с файлами и директориями
class XML - отвечает за создание XMLя
class Page - построение страницы, в котором было бы не плохо унаследовать все 3 предыдущих класса


кагбэ так

  Ответить  
 
 автор: cheops   (14.08.2008 в 13:50)   письмо автору
 
   для: Lelik   (14.08.2008 в 13:26)
 

Зачем? С верху на голову только поставите иерархию... А ещё класс появится тоже будете его в Page включать? Page лучше сделать абстрактным, а от него наследовать потомков, которые будут использовать соответствующий объект (SQL, File, XML). Зачем автомобиль от кирпича наследовать, если этот кирпичь можно в автомобиль положить?

  Ответить  
 
 автор: Lelik   (14.08.2008 в 14:47)   письмо автору
 
   для: cheops   (14.08.2008 в 13:50)
 

А ещё класс появится тоже будете его в Page включать?
ага, мне не тяжело :)

Page лучше сделать абстрактным, а от него наследовать потомков, которые будут использовать соответствующий объект (SQL, File, XML). Зачем автомобиль от кирпича наследовать, если этот кирпичь можно в автомобиль положить?
можно с примером конкретным?

В данном случае спокойно можно разобраться в рамках MVC.
че за мвц? и што за хелперы и модели?

  Ответить  
 
 автор: mechanic   (14.08.2008 в 14:48)   письмо автору
 
   для: Lelik   (14.08.2008 в 14:47)
 

если тезисно - "наследование зло, лучше композиция" )

  Ответить  
 
 автор: Axxil   (14.08.2008 в 14:55)   письмо автору
 
   для: Lelik   (14.08.2008 в 14:47)
 

> че за мвц?
велкам: http://www.google.com/search?q=mvc&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_ruRU279RU285

  Ответить  
 
 автор: Axxil   (14.08.2008 в 14:07)   письмо автору
 
   для: Lelik   (14.08.2008 в 13:26)
 

Согласен c Хеопсом.
Маленькое дополнение

В данном случае спокойно можно разобраться в рамках MVC.

Page - контролёр
SQL - модель
File и XML можно обычными хелперами сделать.

И можно пользоваться в стиле:

<?
class page extends document{
  public function 
blog(){
     
$items model::load('document')->getItems(); // SQL работа
     
$fileHelper helper::load('file');
     foreach(
$items as &$item){
       
$item['content'] = $fileHelper->read('/path/to/content/'.$item['entity_id'].'.txt'); // Работа с файлами
     
}
     
$this->assign('items',$items);
// вызываем из родителя общий метод вывода шаблона. Имя файла шаблона вытаскиваем из xml файла конфигурации
     
return parent::show(helper::load('xml')->getNodeByName('template')); 
  }
}
?>

  Ответить  
 
 автор: mechanic   (14.08.2008 в 14:46)   письмо автору
 
   для: Axxil   (14.08.2008 в 12:34)
 

был у меня случай, подробно долго рассказывать ситуацию, попробую вкратце..
для определенных классов мне нужно было наследованием дать всем одинаковый метод __call, в котором была реализована часть логики работы системы, а также унаследовать методы своего класса-родителя, которому этот __call вообще никаким боком не нужен

пример Lelik, конечно, не иллюстрирует необходимость МН

  Ответить  
 
 автор: ddhvvn   (14.08.2008 в 15:22)   письмо автору
 
   для: cheops   (14.08.2008 в 12:02)
 

УЖАС! Мы же его еще год назад удачно проводили! =))))

  Ответить  
 
 автор: DEM   (14.08.2008 в 16:13)   письмо автору
 
   для: ddhvvn   (14.08.2008 в 15:22)
 

Кто проводил, а кому-то было лень переустанавливать и он сидел на 4-ой версии еще очень долго :) ВРоде бы только есяца 3-4 назад слез (а может и меньше :) )

  Ответить  
 
 автор: sim5   (14.08.2008 в 16:30)   письмо автору
 
   для: ddhvvn   (14.08.2008 в 15:22)
 

Да, получается, что Trianon зря заказывал "панихиду" - "усопший" воскрес. Почти библейская история :)

  Ответить  
 
 автор: Zend72   (15.08.2008 в 09:58)   письмо автору
 
   для: sim5   (14.08.2008 в 16:30)
 

>"усопший" воскрес. Почти библейская история :)
))))))))))))))))))))))))))))))))))))))))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования