решил перейти на линукс и познаю много новых камней под водой =) с одним локальным сервером и его правами на директории дружился два дня. не то, что на "винде" - папку с сайтом в папку домены, рестарт и все работает =) но что-то в нем есть, интересно. ситуация такая... если запрос к классу идет от меня в коде скрипта - проблем нет. я пишу с заглавной буквы, верблюжья аннотация имеет горбы в нужных местах. с регистром в названиях файлов, которые подключатся, все совпадает. но моя разрабатываемая вело-цмс может сама искать классы на основании адресной строки. например bicycle.com/page/666 попросит подключиться класс page и пусть уже он разбирается, что значат эти /666. так вот, на винде проблем с этим небыло, а сейчас, если в адресной строке приходит page, то файл Page.php уже не подключится. сейчас сделал следующим образом: Код (PHP): function __autoload($name){ if (@include_once 'core/'.$name.'.php'){} else (@include_once 'core/'.ucfirst(strtolower($name)).'.php'){} } т.е. использовал конструкцию if не совсем по назначению =) можно это сделать как-то правильней, или "и тааак сойдет" ?
Фреймворки когда берут из урла имя контроллера, преобразуют потом его самостоятельно под свои требования. Т.е. если контроллер page, то фреймворк сам сделает ucfirst, приставит Controller (если это ему надо) и т.п. И даже некоторые самостоятельно преобразуют single-page к SinglePage (не сложно делается, кстати). Так что имеет смысл сделать так же
да, ведь проблема, емнип, именно в кейсе имени файла - подключенные классы все равно какого регистра.
case - регистр клавиатуры. размер буковок. кейс сенситивити - чувствительный к регистру (зависимый, CS), кейс инсенситивити - не чувствительный к регистру (независимый, CI). читай английские мануалы и ресурсы чтоб не плавать в терминологии )))
действительно, проще же предупредить возможную проблему на корню, а не усложнять автозагрузчик, спасибо) сделаю ucfirst(strtolower($name)) в роутере и все дела