@phpgeeks

Страница 4714 из 8430
Diyar
30.04.2017
14:39:41
/stat@combot

Combot
30.04.2017
14:39:41
combot.org/chat/-1001047863278

/
30.04.2017
14:47:12
https://pastebin.com/UuMZpDar хочу из свойства protected $description; вызвать метод public function rnd($text){) такое можно сделать? мне тут скинули вот это - http://stackoverflow.com/questions/4535330/calling-closure-assigned-to-object-property-directly/4535383#4535383 но я не понимаю

Google
/
30.04.2017
14:48:43
Блин. И тут ты. Так сразу сюда и писал бы.
fрейм лонгмана думал там подскажут быстрее

Chuvi
30.04.2017
14:49:09
fрейм лонгмана думал там подскажут быстрее
Там 30 человек. Кто там подскажет....

/
30.04.2017
14:50:15
я сда уже писал

из свойва можно вывать метод?

если твоему свойству присваивается экземпляр класса, то да

типа: $this->user = new User( $this->userId ); $this->user->getName();



скобку закрой

или как из этого масива получить рандомное значение (array('🎷','🎸','🎧','🎹','🎺','🎻','📣')

так есть же функция

не, всеравно красным горит, это я щас потерял скобку когда экперементировал

public function rnd($text){ $rnd = mt_rand (0, count($text)-1); return $text[$rnd]; и как эту fункцию в строку записать?

Google
/
30.04.2017
14:50:15
напиши protected $description; а его значение установи в конструкторе

не с констурктором сложно, без него нужно

зачем тебе в таком случае вообще класс

там сложно взаимодейсвовать с констуктором, там все обстрактное



public function __construct() { $this->description = 'поиск музыки '. $this->rnd(array('🎷','🎸','🎧','🎹','🎺','🎻','📣')); }



параметров не хватает

fиг пойми чт о в констуктор проталкивать

f4rt~
30.04.2017
14:51:58
массив жи

Chuvi
30.04.2017
14:52:19
массив жи
pastebin посмотри

он там rnd переопределяет.

В итоге конкатенируется результат - элемент массива.

fиг пойми чт о в констуктор проталкивать
Конструктор навешивает строку на свойство. Потом это свойство никак не используется, судя по pastebin. Как ты понял что оно не работает?

/
30.04.2017
14:55:33
хорошо, как у лонгмана в его командах, вызвать констуктор, в классах командах? и какие тогда данные туда инжектить?

Chuvi
30.04.2017
14:56:01
Чо?

Нафига он тебе?

У тебя команда там когда исполняется (кто-то её боту написал) - вызывается execute(). Вот туда и пиши.

/
30.04.2017
14:58:27
У тебя команда там когда исполняется (кто-то её боту написал) - вызывается execute(). Вот туда и пиши.
не, я хочу при вызове /help чтоб дискрипшен у некоторых команд менялся рандомно типа интерактива

не, я хочу при вызове /help чтоб дискрипшен у некоторых команд менялся рандомно типа интерактива
вызов /help подтягивает из всех команд дискрипшен, вот я хочу рандомно для некоторых коанд выдавать дискрипшен

Google
Chuvi
30.04.2017
14:59:27
не, я хочу при вызове /help чтоб дискрипшен у некоторых команд менялся рандомно типа интерактива
А, не, тогда HelpCommand переписывай. Так как ты пытаешься это реализовать - не получится.

/
30.04.2017
15:00:45
Chuvi
30.04.2017
15:00:46
Просто в $description засунь массив, в каждой команде, вместо строки. А в /help уже рандомизируй.

Vadim
30.04.2017
15:01:12
Кто тут хелп рандомизирует?

Chuvi
30.04.2017
15:01:52
Иконочки он хочет разные чтоб при разных итерациях были. Как я понял.

Vadim
30.04.2017
15:01:53
Ааа, думал вы тут плохое делаете

/
30.04.2017
15:02:15
Просто в $description засунь массив, в каждой команде, вместо строки. А в /help уже рандомизируй.
а при вызове /help comndnаme оно мне массив вывалит? или вообще екцепшен, а не строку с описанием

Chuvi
30.04.2017
15:02:42
Я и говорю - перепиши хелп - только там описание используется. Там кода-то - два экрана крупным кеглем.

f4rt~
30.04.2017
15:05:03
ну так сделай array_rand из смайликов в описании

Chuvi
30.04.2017
15:05:07
Ну и напиши чтобы у тебя из дескрипшина не строка бралась, а рандомный элемент массива. Чо ты не понял то?

f4rt~
30.04.2017
15:08:44
ало делаешь protected $smiles = ['1','2','3']; делаешь в конструкторе $this->smiles = array_rand бла бла

Chuvi
30.04.2017
15:09:20
ну может так, да понял, спс
Можешь прям вот эту rnd функцию, которую ты уже сделал, public function rnd($text) добавить в HelpCommand и её юзать в хвост и гриву передавая в неё $command->description

Chuvi
30.04.2017
15:11:53
Артур Евгеньевич
30.04.2017
15:14:12
Парни вопрос про SOA. Если мы выделяем какой то функционал в сервис, каким требованием он должен соответствовать?

Chuvi
30.04.2017
15:24:03
А теперь вопрос по теме чата. ))) По следам вот это вот беседы про вызов методов в виде функции. Чот я поплыл. Подскажите, пожалуйста, как правильно реализовать вот это: class SomeClass{ public $doSomething; public function __construct(){ $this->doSomething = вызов функции "something", а не результат её вызова при выполнении __construct } private function something(){ // выборка из базы, например } }

Google
f4rt~
30.04.2017
15:27:50
$this->doSomething = $result = (function() { return $this->something; })-call(new SomeClass());

не знаю насколько за такое руки не оторвут

Chuvi
30.04.2017
15:29:56
Простите, был взволнован. А что, нет... ну... что-нить пусть подлинее, но не такой shit-liner, а то я чот ничо не понял. )

Ну в смысле должен же быть какой-нить поздний вызов функций, которые могут быть не нужны, но вдруг...

f4rt~
30.04.2017
15:32:10
ну могу еще большую грязь подкинуть

статические методы

Chuvi
30.04.2017
15:33:13
А чо не так со статикой? В закрытых от публичного пользования проектах кому какое дело...

Vadim
30.04.2017
15:33:34
Admin
ERROR: S client not available

Chuvi
30.04.2017
15:35:01
Любой более-менее адекватно приносящий бабла проект рафакторят чуть ли не полностью раз в пять релизов. И ничо не умирают.

/
30.04.2017
15:35:51
вызов /help подтягивает из всех команд дискрипшен, вот я хочу рандомно для некоторых коанд выдавать дискрипшен
is_array($command->getDescription()) ? $this->rnd($command->getDescription()) : $command->getDescription() //решение, в /help прописать

v
30.04.2017
15:35:53
а как переписыать - даже разработчики понять не могут

Chuvi
30.04.2017
15:35:56
Тебе и команде, которой это поддерживать и умирать
Тем более что это пет-бот, кому какое дело до моих статических методов. Не перегибай.

Chuvi
30.04.2017
15:38:56
Нет
Покажи мне хоть один большой опен-сорс проект, который спустя 5 мажорных релизов сохранил хоть 10 процентов изначального кода - я сниму перед тобой шляпу.

f4rt~
30.04.2017
15:39:40
большой понятие относительное)

Google
Chuvi
30.04.2017
15:40:09
большой понятие относительное)
В этой жизни всё относительно. Теорию даже придумали. ))))

f4rt~
30.04.2017
15:41:43
открыл uml и посмотрел где используется сие и офигел)

Chuvi
30.04.2017
15:43:29
просто одни вещи легко рефакторить, другие сложнее
Та я не спорю. Но я и не говорю о проектах типа "обосраться 1000 разработчиков". Не надо всё же бота для телеги и гестбуки с биг-дата и гуглом путать, правильно?

И если для "обосраться 1000||100||10 разработчиков" static function и плохо, то для @MyHomeTelegramBot очень даже удобная штука и совсем не грязь.

f4rt~
30.04.2017
15:46:42
не знаю, с одной стороны можно идти на компромисы там где это нужно с другой лучше всегда и везде следовать правилам хорошего тона)

выбирать тебе

Chuvi
30.04.2017
15:49:27
не знаю, с одной стороны можно идти на компромисы там где это нужно с другой лучше всегда и везде следовать правилам хорошего тона)
Прозвучало как "везде и всегда нужно использовать микроскоп, даже для забивания гвоздей". Ну для меня по крайней мере. ) Ты ж не стесняешься пердануть в сортире? ))) Или тоже "правилахорошеготона"?

Chuvi
30.04.2017
15:51:33
проблема в том, что если часто ходить срать, то иногда можно обосраться там, где это не следует)
Ещё дядя Витя говорил - "Следи за собой, будь осторожен" ))) Ну и тут всё ж не масляная рыба. Есть возможность реабилитироваться. )))

f4rt~
30.04.2017
15:54:13
И это... Если так - то это проблема с пищеварением наверное...
ну делая плохо там где это можно, ты так или иначе нарабатываешь привычку)

вообще судя по классу там есть проблемы с архитектурой

у тебя получается большой такой good object а хорошо бы его разделить на сущности и в базу ходить по DTO

Владимир
30.04.2017
15:55:12


Chuvi
30.04.2017
15:59:07
у тебя получается большой такой good object а хорошо бы его разделить на сущности и в базу ходить по DTO
Это образный пример из головы. А так - он мааленький, 4 поля, 6 методов. Один методов долгий и тупит и нужен сильно не всегда, но выносить из класса - ломать логику, потому что он-таки этому классу принадлежит. Поэтому нужен late call, и я не понимаю как... Знаю теперь, спасибо, но не понимаю. ))))

f4rt~
30.04.2017
16:00:09
ну коль я посоветовал грязь

хотя не, достаточно)

Chuvi
30.04.2017
16:01:25
ну коль я посоветовал грязь
Да не грязь, вкуривал я долго, но выглядит это просто устрашающе. Особенно без одной ">" перед call ))))

f4rt~
30.04.2017
16:01:48
ну это типо как небольшой лайфхак)

class Any { private $some = 23; } $result = (function() { return $this->some; })-call(new Any());

вообще вот так он объясняет о себе больше)

Страница 4714 из 8430