-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавлена возможность кэширования токена авторизации #23
Conversation
Благодарю. Но в таком виде не приму. Если готовы исправить, прокомментирую пункт б). |
composer.lock вполне пригождается, т.к. я хочу ещё юнит тесты добавить, а с какими версиями библиотек используется пакет, неясно (только самые свежие, не все и не всегда обновляют пакеты в своих проектах постоянно). |
а) ок $token = $this->cache->get();
if($token === null) {
$token = $this->getContext()->getClient()->request('auth/get_token');
$this->cache->set($token);
}
return $token; в) про классы не согласен - для иде это не нужно, документацию я не генерю. phpdoc оставляем только для свойств и методов. |
Ну вот собственно то, чего я не хотел делать - реализовывать кэширование внутри пакета. Лучше тогда добавить зависимость от какого-нибудь пакета кэширования, т.к. файловый кэш на чтение всё таки хромает под нагрузками.
С чем Вы не согласны? Что писать phpdoc - хороший тон? |
ну собственно вы уже реализовали кэширование. я лишь предлагаю добавить интерфейс и расхардкодить.
|
Я понимаю о каких доках идёт речь. Непонимаю, чем они мешают. Почему они недопустимы. Кэширование переделаю сейчас. |
они не несут смысловой нагрузки - не помогают иде хинтить, не нужны при генерации документации. Я хочу сохранить лаконичность классов, не загромождая шапку.
сделайте пожалуйста проверку на is_writable файла с выбросом исключения с понятным сообщением - среди пользователей библиотеки очень много технически неподкованных людей. |
Ок. Уберу доки. Я планирую просто добавить библиотеку для кеширования. Разраб сам уже решит, какой ему адаптер кэша лучше подойдет. |
не надо. это будет очень "тяжело" и излишне. Одного вашего файлового адаптера вполне хватит. а интерфейс позволит разработчику самому прикрутить любую другую библиотеку. |
Готово |
@@ -20,15 +23,27 @@ class LoginPasswordSecureAuth extends AbstractAuth | |||
private $apiId; | |||
|
|||
/** | |||
* @var CacheInterface|null | |||
*/ | |||
public $Cache; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
пожалуйста, приватный и с маленькой буквы
/** | ||
* @return string | ||
*/ | ||
protected function requestAuthToken() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
protected => private
Скажите, каким style гайдом Вы пользуетесь? |
@@ -35,7 +38,7 @@ public function request($method, $params = []) | |||
* | |||
* @return string | |||
*/ | |||
private function getUrl($method) | |||
protected function getUrl($method) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
private
Готово. |
best practices. https://www.reddit.com/r/PHP/comments/3jdbkd/protected_or_private_as_a_default_visibility_and/ |
если хотите, можем в личке пообщаться - skype:zelenin_av например |
Вот тут сразу же возникает проблема. Чтобы сделать кеширование токена в своём проекте, мне потребуется реализовывать полностю класс По поводу общения мне тут удобно. Возможно эта информация пригодится для будущих поколений =) |
ничего страшного. копипаст решает. Плюс интерфейс подразумевает полную свободу действий для разработчика, а наследование - возможные проблемы при break changes.
это верно |
в общем solid придуман для того, чтобы облегчить разработчику жизнь, в том числе отточенностью своих формулировок, проверенных временем) как бы ни звучало высокопарно. |
Очередная проблема. Я не могу изменить url в клиенте. Что с этим пулреквестом? |
Роман, я предлагал пообщаться в личке, потому что не хотел публично рассказывать банальные вещи. Поэтому, извините, что придираюсь к коду вашего pr, но я банально не могу пропустить код такого качества без минимального соответствия solid. pr сейчас проверю. |
еще раз прошу прощения за мозгопарство. сейчас проставлю тег релизу. |
Я понимаю что такое солид и для чего он нужен. Тут вопрос в том, что для того, чтобы сконфигурировать стороннее расширение вы предлагаете реализовать свой клиент. По-моему это уже перебор. Не забывайте о том, что чрезмерное кол-во слоев и абстракций это не best practices. В добавок к этому считаю, что реализовывать кэш внутри данного расширения - неправильно. |
Нет, если вам не хватает фичи или конфигурируемости, вы можете ее аргументировано запросить. "На всякий случай" - не аргумент и шажок к лапше.
здесь самый минимум
я вам говорил, что реализовывать ничего не надо. надо было лишь вынести кэш из Token. |
Обновлён стиль кода, добавлены phpdoc комментарии, добавлен composer.lock и .gitignore
Добавлена возможность кэширования токена авторизации