Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: function() или $this->function()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pandion
Отправлено: 07 Мая, 2014 - 00:22:51
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Общие ф-ии, используемые в разных контроллерах, у меня поделены на 2 части.

1 часть находится в родительском для всех контроллеров классе и вызывается $this->function()
2 часть находится в файле functions.php, который инклудится в конфиге. И вызывается просто function()

Где, всё-таки, лучше держать эти ф-ии?
 
 Top
Мелкий Супермодератор
Отправлено: 07 Мая, 2014 - 09:35:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Там, где они уместны.
Если имеют отношение к данным - то в моделях. Если нужны только в контроллере (например, перенаправление на другой адрес) - то в контроллере. Если по всему проекту - часто имеет смысл сгруппировать по смыслу в статические методы классов-библиотек.
И, разумеется, с минимально-необходимой областью видимости.

Идея functions.php лично мне не нравится ни в одном варианте - это местное подобие директории "разобрать попозже". К тому же функции не бывают private, это минус.


-----
PostgreSQL DBA
 
 Top
Edwvee
Отправлено: 07 Мая, 2014 - 09:36:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Есть такой паттерн проектирования как хелпер. В PHP имеет смысл, так как работа с нейспейсами слегка странная.
Еще нужно решить, относится ли функция к сущности контроллера.
 
 Top
OrmaJever Модератор
Отправлено: 07 Мая, 2014 - 11:06:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Мелкий пишет:
Идея functions.php лично мне не нравится ни в одном варианте - это местное подобие директории "разобрать попозже".

Почему же? А что если есть служебные функции одиночки, наприме простая функция логирования, или функция для синглтона mysqli, куда их деть то?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 07 Мая, 2014 - 11:46:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




OrmaJever пишет:
Почему же? А что если есть служебные функции одиночки, наприме простая функция логирования, или функция для синглтона mysqli, куда их деть то?

Потому и сказал "лично мне".
Не могу вспомнить, когда мне нужна была отдельная функция, по смыслу не связанная с другими настолько, что их не хотелось объединить в группу. А так же достаточно мелкая, чтобы её целесообразно было оставлять целиком в одной функции.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB