В документации к новой версии CodeIgniter 1.7 появился новый раздел General Style and Syntax (Общий стиль и синтаксис). В нем описаны рекомендации по оформлению кода при разработке с использованием CodeIgniter. Релиз этой версии фреймворка еще не вышел. Поэтому скачать ее можно только из репозитория Subversion по адресу (http://dev. ellislab. com/svn/CodeIgniter/trunk/). А страница документации с рекомендациями находится здесь. Пересказывать их все нет смысла.
Большую часть этих правил и так все соблюдают. Но вот некоторые – довольно интересны. О них я и расскажу. Имена классов и методов Имена классов должны начинаться с большой буквы, все остальные буквы – маленькие. Разделитель между словами – символ «_». Примеры. НЕПРАВИЛЬНО: class superclass class SuperClass ПРАВИЛЬНО: class Super_class Честно говоря, я привык ко второму неправильному варианту (т. н. CamelCased). Естественно, уже существующий код переделывать не придется. И, честно говоря, URL с подчеркиваниями мне не очень нравятся. Имена методов составляются по тому же принципу, только первая буква маленькая.
Закрывающий PHP тег Вместо?> нужно использовать конструкцию /* End of file myfile. php */ /* Location: ./system/modules/mymodule/myfile. php */ Это правило больше относится к PHP чем к CodeIgniter. Дело в том, что закрывающий тег не является обязательным. Но, если вы его используете и после него случайно поставите пробел, то этот пробел будет отправлен браузеру. В большинстве случаев это не страшно, но, например, установить заголовки (headers) вы уже не сможете. TRUE, FALSE, и NULL – всегда большими буквами. Еще одно правило, которое я редко соблюдаю. Логические операторы Вот тут можно запутаться. Вместо || нужно использовать OR, но && предпочтительнее AND. Причина – || выглядит похоже на 11. Операторы сравнения Всегда нужно проверять тип сравниваемый переменных. Т. е. использовать === вместо ==. Тут я полностью поддерживаю разработчиков. В PHP нет строгой типизации переменных, как, например, в C++, из-за этого могут возникнуть ошибки, которые будет сложно найти. Пробельные символы в файлах Их не должно быть перед открывающими и закрывающими PHP тегами. Интересный момент. В оригинале написано:
ExpressionEngine output is buffered, so…. (Вывод ExpressionEngine буферизируется, поэтому…)
ExpressionEngine – это CMS, которую разрабатывает EllisLab. Они же разработчики и CodeIgniter. Сразу виден первоисточник . Использование $SESS->cache Этот многомерный массив позволяет исключить выполнения одного и того же кода при создании страницы. Массив всегда должен быть многомерным, чтобы исключить одновременное использование одних и тех же элементов в вашем коде и сторонних библиотеках. Т. е. $SESS->cache['admins'] использовать нельзя. Пример: