Придерживаетесь ли вы соглашения Yii, называя переменные в г
Придерживаетесь ли вы соглашения Yii, называя переменные в г
Для php, я не встречал ранее таких соглашений, писал в нижним регистре с подчеркиванием переменные, название методов и классов в горбатом регисре.
Вот не знаю, стоит ли переучиться ради Yii.
Вот не знаю, стоит ли переучиться ради Yii.
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
тут еще странность в том, что имена полей таблиц рекомендуется называть имя_поля, соответственно проперти моделей тоже будут с подчеркиванием
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
И если продолжить эту тему то геттеры у моделей писать такого вида getUser_name для использования $mode->user_name тоже не выход.. Потому я думаю что в базе поля лучше тоже горбатом регистре писать.тут еще странность в том, что имена полей таблиц рекомендуется называть имя_поля, соответственно проперти моделей тоже будут с подчеркиванием
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
не все проперти моделей входят в таблицы в чистом виде.
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
называю по настроению, и так и так
RTFM !
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
точно подметил, я даже не подумал об этом.kukuruku писал(а):тут еще странность в том, что имена полей таблиц рекомендуется называть имя_поля, соответственно проперти моделей тоже будут с подчеркиванием
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Это уж совсем плохо))because писал(а):называю по настроению, и так и так
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
в БД все в нижнем, остальное в горбатом. А что плохого? Зато сразу видно где поля из БД, а где геттеры.
Кстати эта тема уже недавно поднималась. Как я уже писал, если так не нравится - можно перекрыть поля из БД геттерами в горбатом регистре.
Кстати эта тема уже недавно поднималась. Как я уже писал, если так не нравится - можно перекрыть поля из БД геттерами в горбатом регистре.
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
геттер можно описать такtaral14 писал(а):И если продолжить эту тему то геттеры у моделей писать такого вида getUser_name для использования $mode->user_name тоже не выход.. Потому я думаю что в базе поля лучше тоже горбатом регистре писать.тут еще странность в том, что имена полей таблиц рекомендуется называть имя_поля, соответственно проперти моделей тоже будут с подчеркиванием
Код: Выделить всё
public function getUserName() {
return $this->user_name;
}
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
rak писал(а):геттер можно описать такtaral14 писал(а):И если продолжить эту тему то геттеры у моделей писать такого вида getUser_name для использования $mode->user_name тоже не выход.. Потому я думаю что в базе поля лучше тоже горбатом регистре писать.тут еще странность в том, что имена полей таблиц рекомендуется называть имя_поля, соответственно проперти моделей тоже будут с подчеркиваниемКод: Выделить всё
public function getUserName() { return $this->user_name; }
было бы хорошо если бы гии автоматом так делал
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
1. PHP в принципе регистрозависимый язык, хотя эта регистрозависимость проявляется весьма странным способом, в одних местах регистр имеет значение, в других нет. Встречался с ситуациями регистрозависимости, но как и когда она используется самим PHP для меня остается тайной, я так и не вывел закономерности. Возможно обнаруженные мной случаи являются ошибками интерпретаторов PHP конкретных версий, я склоняюсь именно к этому, так как устойчивых закономерностей регистрозависимости я найти не смог, но такие факты я наблюдал, когда GetId() вызывалось, а getid() говорило что метод не определен.
2. Если говорить конкретно о самом YII, то следует придерживаться регистра, т.к. для настроек очень многих вещей используются индексы массивов, а они в свою очередь однозначно регистрозависимые. Это значит, когда вы называете в массиве индекс test1, потом называете метод класса actionTest1, то название у вас будет определено как Test1, и далее при поиске в массиве по индексу test1<>Test1, у вас ничего не будет найдено. Конечно же это все лечится на уровне фреймворка, но каждый раз применять strtolower или strtoupper очень накладно по ресурсам, думаю поэтому в фреймворке и не делают это, не считая еще и того, что читаемость исходников фреймворка резко упадет, как и легкость его доработки. Так же в самом фреймворке есть места, которые разделяют названия методов по большой букве, поэтому лучше писать названия так и в такой форме, как они пишутся в фреймворке, так будет меньше проблем, в противном случае где-то проканает, а где-то придется разбираться с ошибками.
3. О _ в названиях полей, об этом уже говорили, так лучше делать, чтобы у вас случайно не совпали имя поля в таблицы и имя определенной вами самими переменной в модели. Это становится более вероятным при изменении структуры базы, можно совершенно не задумываясь сделать в таблице новое поле, которое совпадет по имени с уже определенным свойство модели и дальше получить очень странную и возможно блуждающую ошибку, это конечно будет все найдено и исправлено, но времени на поиск причин может быть потрачено много, особенно если до этого вы не работали над данной моделью.
2. Если говорить конкретно о самом YII, то следует придерживаться регистра, т.к. для настроек очень многих вещей используются индексы массивов, а они в свою очередь однозначно регистрозависимые. Это значит, когда вы называете в массиве индекс test1, потом называете метод класса actionTest1, то название у вас будет определено как Test1, и далее при поиске в массиве по индексу test1<>Test1, у вас ничего не будет найдено. Конечно же это все лечится на уровне фреймворка, но каждый раз применять strtolower или strtoupper очень накладно по ресурсам, думаю поэтому в фреймворке и не делают это, не считая еще и того, что читаемость исходников фреймворка резко упадет, как и легкость его доработки. Так же в самом фреймворке есть места, которые разделяют названия методов по большой букве, поэтому лучше писать названия так и в такой форме, как они пишутся в фреймворке, так будет меньше проблем, в противном случае где-то проканает, а где-то придется разбираться с ошибками.
3. О _ в названиях полей, об этом уже говорили, так лучше делать, чтобы у вас случайно не совпали имя поля в таблицы и имя определенной вами самими переменной в модели. Это становится более вероятным при изменении структуры базы, можно совершенно не задумываясь сделать в таблице новое поле, которое совпадет по имени с уже определенным свойство модели и дальше получить очень странную и возможно блуждающую ошибку, это конечно будет все найдено и исправлено, но времени на поиск причин может быть потрачено много, особенно если до этого вы не работали над данной моделью.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
главное чтоб это не вошло в привычкуTM123 писал(а):можно совершенно не задумываясь
Жду Yii 3!
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
а что мешает сделать свой шаблон?kukuruku писал(а):было бы хорошо если бы гии автоматом так делал
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Меня воротит от camelCase'а, но приходится мириться
Каждый раз, открывая IDE, пару минут трачу на утешение yarrrrrrости ))
Каждый раз, открывая IDE, пару минут трачу на утешение yarrrrrrости ))
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Меня воротит только если в проекте используются одновременно все виды именования. Вот текущий мой проект, который приходится поддерживать, страдает этой болезнью. Сколько существует методов именования переменных, классов, функций и т.д. - все они есть в проекте. При чем писал один человек. Что при этом курилось, мне не известно.flam писал(а):Меня воротит от camelCase'а, но приходится мириться
Каждый раз, открывая IDE, пару минут трачу на утешение yarrrrrrости ))
Twitter: @timlar_ua
- Stamm
- Сообщения: 407
- Зарегистрирован: 2010.03.14, 18:59
- Откуда: Россия, Москва
- Контактная информация:
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Я быстро привык к camelCase. На прошлом работе ещё был жёсткий style gide: в начале имени переменной должен быть тип: $oPost, $aComments, $iCount и тому подобное. Сначала был внутреннее сопротивление, сейчас уже привычно, почти везде использую.
Согласен с Timlar, главное чтобы был единый метод стиля кода для проекта/команды, иначе каждый будет городит своё. На моей практике был один индивидум, который использовал 3 пробела вместо таба. Прямо хочется взять и ... угостить тортом.
Согласен с Timlar, главное чтобы был единый метод стиля кода для проекта/команды, иначе каждый будет городит своё. На моей практике был один индивидум, который использовал 3 пробела вместо таба. Прямо хочется взять и ... угостить тортом.
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Излишний код.kukuruku писал(а): было бы хорошо если бы гии автоматом так делал
github profile: https://github.com/kirs
- timlar
- Сообщения: 1382
- Зарегистрирован: 2009.09.19, 17:49
- Откуда: Украина, Днепропетровск
- Контактная информация:
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
Я использую 4 пробела вместо табов. ИМХО, как-то красивее смотрится. Не люблю, когда в коде табы. Вчегда в виме делаю :retab, для преобразования табов в пробелы.Stamm писал(а):На моей практике был один индивидум, который использовал 3 пробела вместо таба. Прямо хочется взять и ... угостить тортом.
Twitter: @timlar_ua
Re: Придерживаетесь ли вы соглашения Yii, называя переменные
И правильно делаете. Вообще правильная практика использовать пробелы вместо табовЯ использую 4 пробела вместо табов. ИМХО, как-то красивее смотрится. Не люблю, когда в коде табы. Вчегда в виме делаю :retab, для преобразования табов в пробелы.