Sentinel
Евгений
Упавшей
грустно
Alexey
я понимаю плюсы плюсов) Извините за тавтологию. Но для решения задач мне хватает пыхи, модикса и иногда сообщества)
Степан
<?php class ClassName { public static $newtable = 'table'; function __construct($argument) { self::$newtable = $argument; } public static function getTable() { return self::$newtable; } } new ClassName('ttttt'); echo ClassName::getTable(); // 'ttttt'
Alexey
а не проще функцию накатать, внутри которой global?
Артур
Правильный подход писать внутри класса вызов статического метода так Classname:: methodname?
Артур
А для чего тогда self?
Артур
Ну так, почему тогда писать self вместо имени класса нехорошо?
Артур
Я понял, не знал что можно ещё и так вызвать static::method()
Артур
Хотя с другой стороны, а какая разница из какого контекста вызывается статический метод, если он статический и все параметры получает при вызове как аргументы функции?
Артур
Почитал, но всю глубину пока постичь не в состоянии 😁
Артур
Да забей жизнь объяснит 😁
Артур
С кем это с нами? Я один 😁
Степан
Вы совсем чтоли с ума сбрендили?
Степан
self:: это так называемая постсборка
Степан
для статических методов
Артур
Степан
В каком смысле пост?
в смысле статик метод собирается 1 раз
Степан
ща теорию поищу
Артур
в смысле статик метод собирается 1 раз
мы обсуждали разницу между self::method() и static::method() где method() это статический метод класса.
Артур
ща теорию поищу
В теории написано что self это раннее связывание, static позднее. Т.е. если унаследовать класс со статическим методом в котором он вызывается с помошью self, то по self будет классом родителем, а если static:: то классом потомком, если вызывать из потомка. Я так понял.
Артур
Но для меня осталось непонятным, какая разница в контексте какого класса вызывать статический метод, если все параметры я передаю в него как аргументы?
Евгений
а не проще функцию накатать, внутри которой global?
ты эт, завязывай, придет Пашка, не отмоешься
Степан
Да я откуда знаю)))
вот и я о чем говорю все зависит от задачи а global - это адский пипец
Артур
а где тогда правильный и не правильный подход?
Я вообще вызвал так ClassName::method() потому что про self забыл, а про static не знал)))
Степан
Я вообще вызвал так ClassName::method() потому что про self забыл, а про static не знал)))
честно говоря я вообще особо статическими методами не пользуюсь как-то в жизни не пригождается
Артур
честно говоря я вообще особо статическими методами не пользуюсь как-то в жизни не пригождается
Я загорелся идеей дополнить функционал minishop2 удалением пустых каталогов, мне опытный товарищ (Николай Савин) сказал что лучше сделать класс и заинклюдить, ну а создавать экземпляр класса чтобы удалить папки я счёл лишним, поэтому использовал статический метод, точнее два, но не суть.
Артур
не нудавай код кидай бум подумать)))
Над чем думать? Всё работает))) Я даже PR заслал)))
Степан
сам сделал, сам порадовался а вбщество побоку
Артур
вишь ты какой
Обсуждение носило исключительно теоретико-образовательный характер)))
Honey
Подскажите пожалуйста. Есть меню такого вида: 1. Родитель ( магазин ) - подменю ( категория ) - подменю ( категория ) - подменю 2. Родитель ( новости ) - подменю ( блог ) - подменю ( страница ) - подменю 3. Родитель - - Как у родителя 2 ( новости ) убрать ссылку на страницу новостей ? Но что бы остальные родители остались с ссылкой?
Roman
Парни была тема про pagespeed. Подскажите, что означает CLS (Cumulative Layout Shift) и как его можно улучшить?
Артур
Парни была тема про pagespeed. Подскажите, что означает CLS (Cumulative Layout Shift) и как его можно улучшить?
Это означает смещение макета, т.е. сначала у тебя элементы на одних местах, а после анализа стилей и расчётов на других. А как улучшить хз
Артур
table))))))))
Никто и никогда не вернёт нам 2007 год)))
Артур
Если скажем сетку div использую, по-любому div без стилей будет смещен.
Скажем так это моё понимание, скорее всего всё сложнее. Но @dramspro говорил надо мол высоту элементам указывать. Но если это делать в относительных единицах, то как это поможет я хз.
Степан
Но для меня осталось непонятным, какая разница в контексте какого класса вызывать статический метод, если все параметры я передаю в него как аргументы?
да разница в том что имея расширения класса не переписывая код ты можешь обратиться как к родительскому классу так и к тому что ты используешь
Степан
т.е. актуально в принципе по большей части именно при расширении
Артур
да разница в том что имея расширения класса не переписывая код ты можешь обратиться как к родительскому классу так и к тому что ты используешь
Это понятно, но вопрос в другом, как это отразится на результате? Метод статический. Параметры я ему передаю при вызове. Если Я вызову так ParentClassName::method(12) и так ChildClassName::method(12). А метод public static function method($id){ return $id + 2} Разве я не получу 14 в обоих случаях?
Артур
Вот код который я написал для удаления папок. Скажи, что ты о нём думаешь? Насколько он по-твоему плох?
Артур
Не понял, что ты имеешь в виду?
Артур
Типа надо вызвать какой-то родной процессор modx для удаления папок?
Артур
Или не надо было делать toArray()?
Roman
Скажем так это моё понимание, скорее всего всё сложнее. Но @dramspro говорил надо мол высоту элементам указывать. Но если это делать в относительных единицах, то как это поможет я хз.
Я понял, скорее всего, тут идет учет, без js, как твоя верстка выглядит и применением js насколько она из меняется. На мой взгляд это было бы более логично.
Артур
Сейчас попробую.
Артур
По поводу интерфейса, в нём есть вроде бы нужный метод, но он просто возвращает true. А это как бы не то что мне нужно.
Артур
да в вашем случае вы в принципе могли обойтись 2-я функциями
Не понимаю, почему все сегодня считают что я здесь не один?
Степан
Не понимаю, почему все сегодня считают что я здесь не один?
не бери в голову вы это ты и твой комп если так будет удобнее...
Степан
просто смотри есть мнение что ты сможешь ускорить процесс если воспользуешься классом и у тебя будет 1 ссылка на объект modx например
Степан
а не создание ее каждый раз при вызове метода
Артур
Ничего не нужно получать, нужно удалить папки если они пустые. Если метод удалит и вернёт true - хорошо, но там просто возвращается true.
Артур
По процессору вопросов нет. Хочу понять про источник файлов.
Артур
так это до расширения)))))))))))
Естественно, но какой смысл мне его расширять, если сам источник файлов создаю не я и класс у него будет стандартный, т.е. без моего метода.
Степан
Естественно, но какой смысл мне его расширять, если сам источник файлов создаю не я и класс у него будет стандартный, т.е. без моего метода.
да фиг его знает - это уже к автору класса может чего хотел такого прям ваще сделать но не сделал)))
Степан
программы пишут люди
Артур
Задача простая. Есть минишоп. У него есть свой источник файлов. При удалении всех файлов из галереи товара остаются папки их нужно удалить)))
Артур
зачем?
Представим что я удалил не только фото но и сам товара, даже если я создам новый с теми же фото, папки от старого использоваться не будут это мусор, зачем нужен мусор?
Степан
ты знаешь почему интернет хранить все? да посто ресурсы на ПРАВИЛЬНОЕ удаление всего, будут затрачены гораздо большие чем если просто все сохранить)
Артур
Я спросил. Сказали это недоработка в родном процессоре modx, потому как он отвечает за удаление файлов.
Артур
Что при удалении контейнера?
Степан
Я спросил. Сказали это недоработка в родном процессоре modx, потому как он отвечает за удаление файлов.
я тебе больше скажу все пошло из-за того что наверняка метод удаления файлов никак не обрабатывается т.е. используется как войд метод не ждут ответа и потому при ошибке удаления ее просто пропускают ибо пофиг останавливать работу из-за того что файл не удалился это ресурсозатратно
Артур
Это откуда код?
Степан
вообще нужно точно значть что происходит когда мы выдаем unlinc() дело в том что мы даем команду операционной системе, а не напрямую удаляем ссылку на жестком диске