propel, include, include_once

Iron

Guest
propel, include, include_once

у меня еще вопросик по propel. точнее не совсем про propel...
Вопрос наверно вызван моим неокончательным пониманием логики работы inlcude/require[_once]. проблема такая. сгенерировал я propel-проект. Все классы (сгенерированые пропелем, runtime-классы пропеля, creole, jargon) скинул в папку 'classes' и в начале файла 'test.php' прописал set_include_path('.;classes');

запустил. PHP написал "Fatal Error: Cannot redeclare class propel". везде использовал include_once. непонимая что за лажа, установил все классы через pear как написано в мане. Т.е. теперь все то, что лежало у меня в classes лежит в папке PEAR. Убираю строку set_include_path('.;classes');
запускаю. все работает. странно. удаляю все из PEAR, разбираюсь со своим "classes". Нахожу файл BasePeer.php из дистрибутива Propel и в нем строчку "include_once 'propel/Propel.php';"
закомментировал.
запустил. работает, никакой ошибки.

т.е. единственно чем отличалась "PEAR-версия" от версии с папкой "classes" это строчка "include_once 'propel/Propel.php';". Но только "PEAR-версия" с ней работала, а другая нет. Почему? И это при том, что везде стоит include_once, т.е. подобных проблем вобще по идее возникать не должно. Что к чему?
спасибо
 

Iron

Guest
так. уже написал, что здесь это вроде как и не при чем, но решил проверить. работает.

Ok. тогда почему при set_include_path('.;/home/projects/asysite2/test/classes') работает всегда, а при set_include_path('.;classes'); только если убрать include_once 'propel/Propel.php'; из BasePeer.php?
 
Сверху