
Dmitry
13.01.2018
21:09:39
не знаю, глобальных проблем с бс не помню...

Maksim
13.01.2018
21:10:02
я всё равно связи не вижу

Pavel
13.01.2018
21:10:07
А так - запилить клиентский то можно, только тогда пропадает смысл в yii вообще )

Maksim
13.01.2018
21:10:24
а, фреймворк = контейнер?

Google

Maksim
13.01.2018
21:11:20
Павел, с тобой как-то сложно темы обсуждать) ты либо прикидываешься, либо я хз)
вроде, годные вещи порой пишешь. Но иногда чёт не в ту степь, совсем.
В общем, привет Composition over inheritance
private свойства и методы в либах/фреймворках - более чем ок подход.

Dmitry
13.01.2018
21:18:19
Ищем талантливых Разработчиков PHP на back-end для развития highload проекта
Ключевой стек: PHP, MySQL, Yii2
сразу грусть

Maksim
13.01.2018
21:18:47
ну, где хайлоад, там конечно талант и юи
не было бы хайлоада без юи)

Pavel
13.01.2018
21:20:10
а, фреймворк = контейнер?
Если хорошенько нырнуть в yii1 то там можно увидеть как элегантным движением брюки из 2008 превращаются в уютную няшу из 2015, модельки встают на свои места, контейнер начинает работать как надо. Если бы не долбаный private

Dmitry
13.01.2018
21:20:27
ахха... еще перл оттуда
Уютный современный офис в бизнес-центре класса «А» с панорамным видом на Москву;
• Работа рядом с метро Чертаново и Варшавская

Maksim
13.01.2018
21:20:47

Pavel
13.01.2018
21:20:57
Клиентский контейнер - это не то, он тогда начинает жить как бы своей жизнью и проекта становится с раздвоением личности

Maksim
13.01.2018
21:21:09
глупости
для чего нужен di контейнер?
не путаешь ли ты его с обычным сервис локатором часом?

Google

Pavel
13.01.2018
21:22:33
Нам он нужен был чтобы не рассовывать вручную зависимости по многочисленным сервисам

Maksim
13.01.2018
21:22:43
отлично
фреймворк тут каким боком?

Pavel
13.01.2018
21:23:13
У нас на нем все написано

Pavel
13.01.2018
21:23:27
Че поцаны ООП

Maksim
13.01.2018
21:23:30
круто. Вычисления ваши - тоже часть фреймворка?

Pavel
13.01.2018
21:24:06

Ihor
13.01.2018
21:24:22
кстати, а куда в симфони можно вынести класс, чтобы он использовался для композиции в контроллерах?

Maksim
13.01.2018
21:24:39
ну это рукожопство. Оно ни к фреймворку, ни к контейнеру отношения не имеет. Если бы там было
$this->container->get('') лучше бы не стало

Pavel
13.01.2018
21:25:24

Maksim
13.01.2018
21:26:05

Pavel
13.01.2018
21:26:41
Тем что ->container доступно только там где он внедрен, а Yii::app() везде вообще.

Ihor
13.01.2018
21:26:42

Pavel
13.01.2018
21:26:45
Первое это статический вызов

Maksim
13.01.2018
21:27:20
вам ни что не мешало не юзать внутри логики вызов юишного год обжекта, не правда ли?

Pavel
13.01.2018
21:28:32
Кому - нам? Я то живу в реальном мире и пришел уже на готовенькое. Просто разгребаю последствия :)

Pavel
13.01.2018
21:28:37

Pavel
13.01.2018
21:29:00
Надо как-то минимизировать боль.

Maksim
13.01.2018
21:29:12
ну это не проблема юи, не проблема контейнера, не проблема наследования и композиции. Это проблема рукожопства и только

Google

Pavel
13.01.2018
21:29:17
А создать можно где угодно

Ihor
13.01.2018
21:29:44
а куда класс Weather положить?) вот в чёс вопрос )

Pavel
13.01.2018
21:30:57
В каком смысле положить? Куда запихнуть Weather.php?

Pavel
13.01.2018
21:31:03

Ihor
13.01.2018
21:31:12
ну да, чтобы кошерно было

Pavel
13.01.2018
21:31:46
Куда хочешь

Maksim
13.01.2018
21:31:49

Pavel
13.01.2018
21:32:01
Просто неймспей напиши нормально

Pavel
13.01.2018
21:32:09

Maksim
13.01.2018
21:32:13

Ihor
13.01.2018
21:32:26

Maksim
13.01.2018
21:32:29
так же будет передаваться в конструктор ContainerInterface и всё)

Pavel
13.01.2018
21:32:32
Надо показывать исходники и объяснять. Но это бессмысленно так как я уже знаю что из-за private ничего не изменить.

Maksim
13.01.2018
21:33:15
Reflection API тебе в помощь) подсунь как-нить, если так сильно хочется)

Pavel
13.01.2018
21:33:17
спс
Какое предназначение у этого класса?

Ihor
13.01.2018
21:33:42
погоду подтягивать по апи

Pavel
13.01.2018
21:33:50
Ааааа
Тогда это сервис

Maksim
13.01.2018
21:34:05
скорее, провайдер)

Pavel
13.01.2018
21:34:37
Не суть

Google

Pavel
13.01.2018
21:34:49
Для них отдельную папочку
А чтобы в контроллере использовать
Зарегистрирует как сервис

Ihor
13.01.2018
21:35:46
спс, пойду почитаю мануал )
о сервисах

Maksim
13.01.2018
21:37:04

Pavel
13.01.2018
21:54:12
Все тлен. Что бы ты ни накодил сейчас, как бы не отформатировал - через пару лет будет считаться отвратительным говнокодом. Смирись.

Maksim
13.01.2018
21:54:37
у меня быстрее) 2 минуты назад - уже говнокод :)

Pavel
13.01.2018
21:55:03
Зачем так жить?

Maksim
13.01.2018
21:55:14
умирать не охота)

Dmitry
13.01.2018
22:59:17
Ну вообще-то статус юя1 уже такой, что можно спокойно форкаться и проставлять protected везде где необходимо

Maksim
13.01.2018
23:04:15
и творить ещё больший ад, да)

Raensul
14.01.2018
09:46:06
можете помочь студенту? не могу понять как простой билдер реализовать, в варианте, где есть только класс продукта и ксласс-строитель
совйства продукта ведь описываются в классе продукта?
т.е. например class Car
{
public $color = 'grey';
public $engine = 'TS';
public $transmission = 'MANUAL';
public $wheelsDrive = 2;
public function __construct($c, $e, $t, $w)
{
$this->color = $c;
$this->engine = $e;
$this->transmission = $t;
$this->wheelsDrive = $w;
}
}
или эти св-ва описываются в классе строителе? если второй вариант - то у меня вроде работает все. но вроде как логично, что св-ва должны описываться в пробукте, а в строителе мы их лишь модифицировать можем
в тырнете не нашел примеров на php простого билдера. есть только классический с деректором
полный код https://gist.github.com/Raensul/a8f615d8489b7c4e5e5328810d60a52b - это так, как я думаю должно быть, но тогда я не знаю как описать класс-строитель...


Dmitry
14.01.2018
11:02:35
можете помочь студенту? не могу понять как простой билдер реализовать, в варианте, где есть только класс продукта и ксласс-строитель
Ну, смотри, если в классе есть конструктор, то понимай, что метод __construct() будет выполнен сразу при создании экземпляра класса. Это нужно для того, чтобы определить поля класса входными данными $c, $e, $t, $w. Класс CarConstruct по сути не нужен, так как получается, что выполняется двойная работа. Ты можешь эти свойства прописать сразу при создании экземпляра: $car1 = new Car($c, $e, $t, $w);

Raensul
14.01.2018
11:12:07
Это я понимаю, спасибо. Но тут же суть в том что при создании строителя можно строить кар1 2 3 С разными значениями Полей, И при этом не заморачиваться порядком их написания при определении нового объекта. Как я понимаю, в этом и состоит суть билдера

Google

Raensul
14.01.2018
11:12:19
В моём случае билдер упрощенный
Классический билдер я пока не трогал, Хочу сначала разобраться с простым.

dypa
14.01.2018
11:13:21
удачи http://designpatternsphp.readthedocs.io/ru/latest/Creational/Builder/README.html


Plomipu
14.01.2018
11:24:53
Здорово, ребята. Короче выручайте. Моя задача ограничить доступ к моему git репозиторию только для определённого круга пользователей. Для доступа других людей к моему репозиторию я им передаю свой публичный SSH-ключ. Но как другой человек должен его использовать, чтобы получить доступ к нему ? Я столько гуглю, а все равно не попадаются статьи на эту тему, а только: как зайти по ssh на git сервер, но это не совсем то. Поэтому я вас умоляю: дайте мне пожалуйста статью как это делается или хотя бы направьте меня с подходящей фразой, чтобы правильно нагуглилось.
p.s. Мне предлагали перетащить репозиторий на GitLab или BitBucket. Конечно это выход, но я бы хотел узнал как передавать доступ к ограниченному число пользователю посредством ssh-ключа, так как не на всех серверах git может быть доступна фича добавления определённого числа людей в команду для работы над определённым репозиторием зарегестрированным юзерам. Я знаю, что мой вопрос не по PHP просто тот факт, что просто так у меня не удаётся нагуглить существенные статьи, где про всё это сказано чёрным по белому не находятся чтото, спросить не у кого, а время идёт (.


Dmitry
14.01.2018
11:30:11
как раз как зайти по ssh на гит сервер и есть то. гит работает поверх ssh. так что вопрос заведения нескольких linux пользователей со своими ключами и правами записи в директорию с репозиторием

Plomipu
14.01.2018
11:41:09

Dmitry
14.01.2018
11:42:34
линукс юзер на гит сервере
доступ к репозиторию (а репозиторий это просто папка на диске) обуславливается правами доступа linux

Igor
14.01.2018
11:44:22
есть такая опция в authorized_keys файле, как command. она ограничивает входящее подключение одной командой. например, так работают гитлаб и гитхаб: для авторизации используется один линукс-юзер, но при этом удается разграничить доступ к репам
Самое простое очевидное решение - либо гитлаб, либо гитхаб. Оба так или иначе платные, для гитлаба нужен не самый слабый сервер, а гитхаб сам по себе немножко платный. Но оба эти решения позволят вам разграничить доступ к одному проекту, и оба умеют в автозацию по ключам


Plomipu
14.01.2018
11:51:44
линукс юзер на гит сервере
Прошу только не подумайте, что я тупой, хоть и признаю, что лажаю по крупному. Просто я хочу уточнить. Git сервер, который я использую изначально не мой. Поэтому как linux юзер не имею возможности менять права к папкам и файлам. Я просто его пользователь, к которому админ мне дал доступ( зарегистрировал ). Но создать ключик я могу. Другой вопрос в том, что если я не являюсь привилегированным пользователем git сервера, то даже не смотря на то, что кому-то передам его, то все равно другие сторонние пользователи не смогут им воспользоваться, чтобы через ssh посмотреть мои репы , если они помечены как "private" ? Так получается ??

Dmitry
14.01.2018
11:52:38
наверно стоит начать с того, что такое у тебя гит сервер
видимо это какое-то отдельное ПО, раз там можно что-то заводить... тут только это ПО и может помочь, умеет оно разных пользователей или нет

Plomipu
14.01.2018
11:57:30
Это грубо говоря хост на Линуксе( о чём вы и сказали ) для хранения файлов, только с git оболочкой.
По другому объяснить не могу.

Maksim
14.01.2018
11:58:37
возьми битбакед и не парься. Он стоит чуть больше ноля. Ни одна команда не заметит таких трат

Plomipu
14.01.2018
12:01:42

Dmitry
14.01.2018
12:03:07
если это хост, но ты не админ, а обычный юникс пользователь, то ничего ты не сделаешь

Plomipu
14.01.2018
12:10:11

Pavel
14.01.2018
12:10:54