Добрый день. Вопрос производительности и использования памяти php. В документации намёков не нашел. Возможно, не так искал. Надеюсь на Вашу помощь. Допустим, у нас есть некий класс такого типа: Код (PHP): class veryBigClass { public static $writeFlag; //флаг того, что нам надо будет читать public static $readFlag; // флаг того, что нам надо будет писать public static function init($wF, $rF) { self::$writeFlag = $wF; self::$readFlag= $rF; } public static function write() { // длинная функция с записью в файл } public static function read() { // длинная функция с чтением файлов } public static function action() { // в зависимости от флагов читаем, пишем, читаем и пишем или не читаем и не пишем if(self::$writeFlag) { self::$write(); } if(self::$readFlag) { self::$read(); } } } Т.е. при инициализации мы передаём параметры - чем занимается класс (например, пишет, читает, или и то и другое). Вопрос: влияет ли на производительность наличие множества довольно "тяжелых" методов в классе? PHP грузит в память только используемые методы, когда натыкается на класс, или - все разом?
-конечно, чем "тяжелее" метод, тем долльше выполняется и больше нужно ресурсов. -"грузит" все сразу. но не в том смысле что сразу их выполняет. зачем в классе все статическое? вы понимаете какие подводные камни вас будут ждать если будете активно использовать данный подход?
Ибо класс что-то вроде ядра web-приложения. Мне кажется логичным сделать его статикой. Что-то вроде: Код (Text): //... Core::init(0, 1); //... Core::action(); //... Core::save(); //... Core::shutdown(); Или я что-то упустил? Ну да, и на акселераторы надежда. Кешировать-то не получится.
ну а смысл? чтоб вручную вызывать замену конструктора и деструктора? отсутствие возможности использовать два экземпляра класса и т.д.
Не сто тысяч. Что-то я погорячился Два экземпляра класса не нужны, в любом случае. Если не статик, то Синглетон надо делать. Да и одна строчка с вызовом инициализации погоды не сделает.
опять двадцать пять..... Зачем??? ))) что значит надо? кому надо? ... нет дело ваше. я просто к тому, что чтобы делать именно так а не иначе, хороше бы понимать, зачем вы это делаете, что это дает.. и главное - нужно ли оно вообще в данном случае?
Надо - чтобы это был единственный экземпляр и при обращении к нему из любого потаенного места приложения я был бы уверен, что он проинициализирован и готов к работе. Ну и, типа, ООП, паттерны, стильно-модно-молодёжно!
статик рулит. но это не имеет никакого отношения к ООП. удобно должно быть. единственное о чем стоит помнить.
Да не парьтесь. Делайте статиками. У php на этот счет другие планы, не так как у чистых языков ООП. Статики наследуются и могут быть вызваны из родителя и дочернего класса. Если логично продумать структуру, мы не потеряем ничего. Хотя и есть такое, что ООП быстрее статика в php. Но вот логически подумать и можно-это все преодолеть. Статика удобнее, проще и можно оптимизировать и ускорить.
прям неперестаю удивляться таким высказываниям...)) -удобнее и проще чего? инстанцирования класса? или простыми функциями? так и возможности совсем разные становятся доступны. а для статики появляются ограничения в применении. -оптимизировать и ускорить? один тут доускорялся и наоптимизировал в теме про статические методы в объекте. а помто удивлялся почему процесс крешится. а всегото надобыло невыеб.ваться и сделать по колхозному, родить объект и работать с ним, и небыло бы проблем вообще. статикой тоже нужно уметь пользоваться. а еще учитывать особенности работы с ней в пхп.
Нет у статиков объекта. Есть только ссылка на класс. Ну так а чего вы ждете? Естественно надо. Но это не значит, что нельзя или не возможно. Правда-это не для слабонервных и не новичков. Тонкостей конечно много. Но статика в php отличается от других языков. По этому тут другой подход.
Ну по работе с базами данных и соединениями это уж точно не для слабонервных. У него там в кучу все написано, кучи классов и объектов непонятно зачем и для чего. Спецам в программировании давно известно, что нет необходимости делать кучи классов и объектов. Потому, что они знают как проектировать и не прибегают к задротству мозга в стадии написания скрипт-кодов, потому что у них уже все задачи спроектированы в письменной форме. И они пишут программный скрипт-код уже по спроектированным задачам, пунктам и подпунктам. Все задачи которые нужны для запуска сайта в жизнь, хоть какой-то минимум для полной выполненной задачи.