<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Избыточность php кода</title>
		<link>https://www.cotonti.com</link>
		<description>Neueste Themenbeiträge</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Sat, 11 Apr 2026 19:36:20 -0000</pubDate>

		<item>
			<title>Macik</title>
			<description><![CDATA[<blockquote>
	<a href="https://www.cotonti.com/forums?m=posts&amp;p=34759#34759">#34759</a> <strong>Dayver: </strong><br /><p>
		А еще мне кажется что все эти библиотеки API нужно просто взять за правило подключать (ели оно глобальное например как кеш или экстраполя и формы) к примеру только в <em>common.php</em> (естесно ведя спец параметр в datas/config.php которым разработчик сможет отключать все это при необходимости) .... и тогда в расширениях не придется по десять раз инклудить .... а если расширению требуется свой библиотека или API то подключать ее в том же <em>common.php </em>с помощью хука (например input или global)</p>
</blockquote>
<p>
	 </p>
<p>
	В общем согласен - избыточность убирать надо. Но что касается все вызовы перенести в «<strong>common</strong>» - тут вопрос, что «дороже» будет: перекроет ли экономия от обрезания <strong>require_once </strong>затраты на лишний цикл хуков для каждого из модулей который хочет загрузить свою библиотеку.</p>
<p>
	Строго говоря, надо запустить профайлер и посмотреть сколько «сжирает» <strong>require_once</strong> как в примере выше и посмотреть какой это процент от общих расходов. И думается мне, что в топе будут совсем другие вещи, которые можно (и нужно) оптимизировать.</p>
<p>
	 </p>
<p>
	<strong>Добавлено 3 минуты спустя:</strong></p>
<p>
	да к тому же приведенный пример (ссылка) не очень актуален, т.к. это режим редактирования - его вызывает ограниченное количество пользователей, ограниченное количество раз. Т.е. это скорее «режим админки» там скорость менее важна, чем на вызове страниц или категорий.</p>
<p>
	<strong>Добавлено 3 недели спустя:</strong></p>
<p>
	В продолжение темы: настроил у себя на локальной машине расширение для PHP: «Inclued». </p>
<p>
	Оно собирает статистику по подключению модулей к проекту и создает массив. Потом его можно преобразовать в графическую схему.</p>
<p>
	Вот для примера: <a href="https://s3-eu-west-1.amazonaws.com/static.galaxyhost.org/cotonti/cotonti_inclued.png" rel="nofollow">https://s3-eu-west-1.amazonaws.com/static.galaxyhost.org/cotonti/cotonti_inclued.png</a> (1,1Мб  4300х3400 pix)</p>
<p>
	Это схема вызово модулей для главной страницы Котонти (почти стандартная установлка из коробки, просто для примера). </p>
<p>
	Сплошные линии это первичный вызов файла. Пунктирные это повторное обращение к файлу. Можно медитировать.</p>
]]></description>
			<pubDate>Di, 21 Aug 2012 17:29:45 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=6984&d=0#post35176]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[<p>
	А еще мне кажется что все эти библиотеки API нужно просто взять за правило подключать (ели оно глобальное например как кеш или экстраполя и формы) к примеру только в <em>common.php</em> (естесно ведя спец параметр в datas/config.php которым разработчик сможет отключать все это при необходимости) .... и тогда в расширениях не придется по десять раз инклудить .... а если расширению требуется свой библиотека или API то подключать ее в том же <em>common.php </em>с помощью хука (например input или global)</p>
]]></description>
			<pubDate>Sa, 23 Jun 2012 17:01:30 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=6984&d=0#post34759]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[<p>
	согласен с тем - что надо логику загрузки файлов создать - и если файл загружен в любом случае - зачем его грузить еще раз</p>
]]></description>
			<pubDate>Sa, 23 Jun 2012 16:55:19 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=6984&d=0#post34758]]></link>
		</item>
		<item>
			<title>Dayver</title>
			<description><![CDATA[<p>
	Предлагаю устранить (прежде проверив на 100% действительно ли такие куски php кода в движке не нужны и их удаление не повлечет за собой ошибок) такие избыточные строки кода:</p>
<p>
	- Итак для генерации страницы по url <u>/index.php?e=page&amp;id=XXX&amp;m=edit</u> происходят следующие цепочки инклудов php файлов API разного полезного функционала (их повторение не вызывает ошибок поскольку используется функция <em>require_once</em>):</p>
<p>
	<img alt="" src="http://www.cotonti.com/datas/users/skrin4235_29.jpg" /></p>
<p>
	потому убрав в <strong>/modules/page/page.php</strong> строку <strong>25</strong>; в <strong>/modules/page/inc/page.functions.php</strong> строки <strong>17, 18</strong>; в <strong>/modules/page/inc/page.edit.php</strong> строку <strong>14</strong> мы, по идее, избавимся от ненужных вызовов функции require_once ибо это избыточно (наверняка оптимизация "спичечная" но код станет чище).</p>
<p>
	- Такая же, аналогичная, ситуация и по урлу <u>/index.php?e=page&amp;c=XXX&amp;m=add</u></p>
<p>
	- Да и вообще много где в расширениях идет вызов, например, /system/extrafields.php хотя он итак уже включен в /system/common.php который предшествует любому файлу модуля или плагина</p>
<p>
	 </p>
<p>
	Может я где то чего не доглядел или не допонял но все вроде так работает - так зачем плодить лишние строки кода и вызовов функций?!</p>
<p><strong>Добавлено 4 часа спустя:</strong></p><p>
	К тому же еще вопрос - зачем в корневом index.php инклуды (файлов config.php, functions.php, cotemplate.php, common.php) идут посредством <em>require_once</em>, а не просто <em>require </em>ведь "выше" него уже нет ничего, а потому вероятность того что эти файлы уже были подлючены практически нулевая потому зачем лишние проверки? Та же ситуация в common.php.</p>
<p>
	 </p>
]]></description>
			<pubDate>Sa, 23 Jun 2012 01:22:21 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=6984&d=0#post34746]]></link>
		</item>
	</channel>
</rss>