Pull to refresh
4
0
Кирилл @kxxb

User

Send message

Дорогой автор, не сочтите за нравоучение - но если вы смогли у себя диагностировать депрессию, то стоит обратится за помощью к психологу или психотерапевту, так как сменой деятельности в профессии или какой-то системой отслеживания целей это не вылечишь.

Как минимум, (но это не лекарство) хотя бы почитайте Лобковского "Хочу и буду", он очень популярно рассказывает про неврозы и как они нам портят жизнь. У него есть хороший набор правил, первое гласит - делай только то, что хочешь. И это совсем не просто! Если следовать этому правилу, придется выбирать в таких категориях - хочу я чтобы был спокоен или забить на душевные порывы и пахать и зарабатывать. Хочу я заниматься любимым делом или продолжать по привычке, то что уже стабильно.

Спасибо за совет!

Ваш метод разработки очень популярен, когда проще написать свой родной велосипед, вместо того, чтобы оглянутся и посмотреть какие инструменты уже существуют, покрывающие ваши задачи и использующие стандарты.

Сам грешен, вел себя так же. Так как на изучение нового, уходит время и не всегда это новое окажется годным.

Со своей стороны, вижу свою задачу, рассказывать про инструменты такие как API platform, так как верю, что кому-то это сможет сэкономить много времени и ресурса.

Благодарю за ревью!

В туториале, я рассказываю как максимально быстро подступиться к изучению API-platform. Это не "серебряная пуля" для решения всех задач (в начале статьи, я подсветил, что можно делать API и на подходе с контроллерами).

Но в моем случае, если бы я раньше начал использовать эту библиотеку, то огромную часть кода в проекте писать не пришлось.

По поводу Вашего замечания про God-object, только Вам решать как и куда раскладывать логику в проекте :)

В данном примере, я показал подход, как обработку каждого метода(POST, PATCH, GET) можно увести в процессор или провайдер (используя принцип CQRS). А дальше, естественно, реализовывать бизнес логику в сервисах или других компонентах системы.

Так же, если Вас не устраивает такой подход, API-platfom вполне поддерживает подход с контроллерами.

То что, произошла "концентрация" атрибутов в сущности пользователя, для описании поведения API, не вижу в этом ничего криминального, для формата туториала. И в сущности пароли не храниться в открытом виде, поле plainPassword необходимо, только для чтения пароля чтобы сразу закэшировать его.

По поводу высказывания "Программирование на другом языке" - если вы про атрибуты, то это все тот же php.

В этой статье, я не стал грузить читателя всеми фичами библиотеки, так как пришлось быть делать очень длинный материал. В следующих материалах, планирую рассказать как применять валидаторы, voter, загрузку и отдачу медиа.

Я просто изучил документацию, просто перевел часть статей документации на русский язык(wip), просто сделал туториал, и просто решил поделится им с друзьями.

А потом, подумал, а может этот туториал станет полезен не только мне и моим друзьям?
И просто поделился им с русскоговорящим сообществом Хабра.

В надежде, что кому-то это принесет пользу и упросит жизнь :)

Скрин в предыдущем ответе, как раз иллюстрирует этот метод :)
Такая возможность доступна если выделить один объект или группу объектов.
В результате, мы получим пригодный SQL для дальнейшего использования в любимой IDE или напрямую, через консоль.



А вот генерация через вкладку Tools -> DB -> Generate Database, действительно не доступна в Community Edition.

Visual Pardigm

Одно время, я активно использовал Visual Pardigm, для рисования диаграмм.

У них есть Community Edition
После создания диаграммы, можно из неё генерить SQL



И причем, как вы и хотели, с перламутровыми пуговицами без привязки к конкретной БД :)

Data Grip
В Data Grip, обнаружил вот такую функцию.

Да, всё работает из терминала.
Спасибо, за глубокую диагностику проблемы :)
Совершенно верно, именно так всё и настроено.
По такому принципу у меня Toad работает.

В данном случае, сообщение об ошибке у меня исчезло и DataGrip начал работать по ssh, после перезапуска компьютера.
Возможно, где-то у меня в системе было что-то не так.

Как usercase:
1) Установил DataGrip
2) Настроил ssh-тонель, получил ошибку
3) Перезапустил систему
4) Соединение по ssh-тоннелю заработало
Да, для доступа по ssh используется 2345 вместо 22.
В данном случае, я пытался под разными пользователями попасть, и в скрин попал root :)
Добрый день!
Решил опробовать данный инструмент, и сразу воткнулся в проблему соединения с базой по ssh.

В поддержке нашел вот такой топик.

Скажите, есть ли какой-то туториал по этому поводу?
Спасибо!



Я стараюсь использовать trello.com для взаимодействия между участниками проекта.
Создаю под проект свою доску.
В ней создаю четыре столбца:
  • Задачи
  • В работе
  • На проверке
  • Выполнено

Далее начинаем создавать карточки в столбцах.

Вначале, у нас все карточки скапливаются в первом столбце.
И походу работы, карточка перемещается по столбцам, и должна уйти в «Выполнено»

Чем хорош этот инструмент, что у него есть и мобильное приложение и разные методы оповещения.
Если кто-то перемещает карточку в другой столбец, или что-то в ней изменяет, сразу срабатывает push уведомление у участников.

Рекомендую взглянуть на этот инструмент, кто не знает о нём (тем более, что он бесплатный).

Спасибо, учту такую возможность.
Было бы здорово посмотреть на картину и 10 км забега.
Мы как раз там, с моим начальником бежали :)
Спасибо за расширение.
А насчёт обработки удаления, я думаю можно настроить каскадное удаление во внешних ключах таблиц, или я что-то упускаю?
Интуитивно, понимал, что делая вот так
$model->name = $_POST['User']['name'];

я делаю, что то не правильно. Спасибо что, дали совет.

Хочу уточнить, правильно ли я понял идею относительно
$user->attributes =    $_POST['User'];
$profile->attributes = $_POST['Profile'];


такое возможно если мы в контроллере, например в actionCreate делаем так
 public function actionCreate(){
            $modelUser = new User();
            $modelProfile = new Profile();
             . . .
           $this->render('form',array(
			  'modelUser'=>$modelUser,
			  'modelProfile'=>$modelProfile,
		));


а затем, при описании формы делаем следующее
<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'UserForm',
	'enableAjaxValidation'=>false,
)); ?>
       <?php echo $form->errorSummary($modelUser); ?>
       <?php echo $form->errorSummary($modelProfile); ?>

	<div class="row">
		<?php echo $form->textField($modelUser,'login',array('size'=>45,'maxlength'=>45)); ?>
		<?php echo $form->error($modelUser,'login'); ?>
	</div>
       <div class="row">
		<?php echo $form->textField($modelProfile,'name'); ?>
		<?php echo $form->error($modelProfile,'name'); ?>
	</div>
. . .


То есть в рендер переедаю две модели, и при построении единой формы, использую поля из этих моделей.

С локализацией в этом примере полная лажа, согласен.
Но в этом примере, я ставил акцент на работе с CRUD двух связанных таблиц.

Если столкнусь с проблемами, при разработке локализации, то расскажу в следующем посте о их решении.

А если у Вас есть, какой то совет и ответ, милости прошу опубликовать его в комментарии ниже.

Information

Rating
Does not participate
Location
Дмитров, Москва и Московская обл., Россия
Date of birth
Registered
Activity