Регистр и имя модели

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Регистр и имя модели

Сообщение Bublik »

Проверяю наличие модели так

Код: Выделить всё

if (class_exists($model)) {}
 
Все это работает на MacOSX + MAMP (Apache + PHP 5.3).
Переносим на Linux - получаем ошибку в регистре.
Т.е. на маке работает как class_exists('user'), так и class_exists('User'). На Linux только второй вариант.
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: Регистр и имя модели

Сообщение Nafania »

А вопрос-то в чем?
В том что линукс регистрозависимый?
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: Регистр и имя модели

Сообщение Bublik »

MacOSX тоже регистрозависимая, но в ней работают оба варианта.
Вопрос в том, что есть решение отличное от: class_exists(ucfirst($model)) ?
AlEg
Сообщения: 61
Зарегистрирован: 2012.01.17, 04:46

Re: Регистр и имя модели

Сообщение AlEg »

$model - это экземпляр класса? Тогда корректно будет так:

Код: Выделить всё

if (class_exists(get_class($model))
{
..
} 
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: Регистр и имя модели

Сообщение Bublik »

Выше написано, что я так и делаю.
Также выше написано, что это не экземпляр класса, а просто строка.
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: Регистр и имя модели

Сообщение Nafania »

Я с макосью не работал, но гугл говорит, что она бывает как чувствительная к регистру, так и нет.
Может у вас второй вариант?
В любом случае, писать надо так, чтобы приложению не было разницы под какой системой работать.
То есть надо делать так, чтобы и под регистрозависимой ФС и под независимой все работало одинаково.
esche
Сообщения: 1054
Зарегистрирован: 2010.11.24, 03:39

Re: Регистр и имя модели

Сообщение esche »

Bublik писал(а):Вопрос в том, что есть решение отличное от: class_exists(ucfirst($model)) ?
Есть. Придерживаться единых правил именования..
...
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: Регистр и имя модели

Сообщение Bublik »

Правил придерживаюсь. Сторона, которая шлет запросы - нет. Она может прислать в запросе как user, так и User :(
Реализовал пока вариант с ucfirst но кажется неким костылем.
Jampire
Сообщения: 207
Зарегистрирован: 2011.01.28, 11:45
Откуда: Гомель
Контактная информация:

Re: Регистр и имя модели

Сообщение Jampire »

А с каких пор стало принято слепо доверять данным, пришедшим из вне?
Изображение
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Аватара пользователя
stasuss
Сообщения: 10
Зарегистрирован: 2012.02.29, 08:47

Re: Регистр и имя модели

Сообщение stasuss »

а если приводить к нижнему регистру запросы?
Вещи не всегда такие, какими кажутся. По моему личному опыту они гораздо хуже. (инквизитор Титус Дрэйк)
esche
Сообщения: 1054
Зарегистрирован: 2010.11.24, 03:39

Re: Регистр и имя модели

Сообщение esche »

stasuss писал(а):а если приводить к нижнему регистру запросы?
Эм.. а значимое отличие от ucfirst?
...
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: Регистр и имя модели

Сообщение Bublik »

Jampire писал(а):А с каких пор стало принято слепо доверять данным, пришедшим из вне?
А вопрос в после этому посвящен? Данные приходят от надежного источника.
Bublik
Сообщения: 59
Зарегистрирован: 2011.01.31, 21:48

Re: Регистр и имя модели

Сообщение Bublik »

esche писал(а):
stasuss писал(а):а если приводить к нижнему регистру запросы?
Эм.. а значимое отличие от ucfirst?
Ну видимо говорится о чем-то таком:

strtolower(ucfirst($model))
Jampire
Сообщения: 207
Зарегистрирован: 2011.01.28, 11:45
Откуда: Гомель
Контактная информация:

Re: Регистр и имя модели

Сообщение Jampire »

Bublik писал(а):
Jampire писал(а):А с каких пор стало принято слепо доверять данным, пришедшим из вне?
А вопрос в после этому посвящен? Данные приходят от надежного источника.
Ваш вопрос стоит как? Сторона, присылающая запросы, не соблюдает стандарт (и тут вы еще доказываете, что она надежная? Где же тут надежность???). И тут же вы задаете вопрос, про целесообразность обработки этих данных. Да вы ОБЯЗАНЫ их обрабатывать, если они приходят в произвольной форме. Сегодня user, завтра User, а послезавтра - uSeR. Я бы делал так:

Код: Выделить всё

ucfirst(strtolower($model)); 
Изображение
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Ответить