Как стать автором
Обновить
38
0

Пользователь

Отправить сообщение
именно. Что в свою очередь добавляет нам идемпотентность в случае использования PUT! А это дает гарантию, что действие выполнится только 1 раз
Если в лист не оборачивать тоже будет работать, кстати.

with  open("file.txt", "w") as f:
    f.write("\n".join(set(usersStr.split("\n\r"))))

если у вас Mac OS X или Linux, то тогда у вас уже все есть из коробки. Почитайте c.learncodethehardway.org/book/ex0.html там все подробно написано.
не, я бы так делать не стал, но SerializableEntity, Timestampable вполне себе =)
Мы у себя трейты исполуем во всяких DTO и еще примерно так gist.github.com/1034079

Хочу добавить, что трейты — это не про наследование. Это про горизонтальное расширение.
А мы тут свой трекер разрабатываем… Правда он для интерпрайзов всяких, хотя может быть кого-то заинтересует. www.comindware.com/tracker/
а плохие названия методов зачастую являются следствием дырявой абстракции. Все от ситуации зависит, конечно…
попробуйте
$methods = \get_class_methods($object);
        foreach ($methods as $m) {
            if (\substr($m, 0, 3) === 'set') {
                $key = \lcfirst(\substr($m, 3));
                if (isset($data[$key])) {
                    $object->$m($data[$key]);
                }
            }
        }


Это можно и в класс запихнуть (сделать метод fromArray()), а так же вызывать его из конструктора.
Таким образом, добавляя и удаляя сеттеры вы автоматически управляете возможностью писать в свойство извне.
<service id="cmw.olms_core.accounts_service" class="Cmw\OlmsCoreBundle\Service\AccountsService">
            <argument type="service" id="doctrine.orm.entity_manager" />
            <argument type="service" id="cmw.olms_core.notifier_service" />
</service>


class AccountsService
{

    /**
     * @var \Doctrine\ORM\EntityManager
     */
    private $em;

    /**
     * @var \Cmw\OlmsCoreBundle\Service\Notifier\NotifierInterface
     */
    private $notifier;

    public function __construct(EntityManager $em, NotifierInterface $notifier)
    {
        $this->em = $em;
        $this->notifier = $notifier;
    }
}


парсер.
class AccountsService
{

/**
* @var \Doctrine\ORM\EntityManager
*/
private $em;

/**
* @var NotifierInterface
*/
private $notifier;

public function __construct(EntityManager $em, NotifierInterface $notifier)
{
$this->em = $em;
$this->notifier = $notifier;
}
....

/>
/>


Идет лесом тот кандидат, который этого не осилит. Есть мнение, что в нашей профессии существуют намного более сложные вещи.
да жалко беднягу… Быть может еще одумается =)
У меня на проекте очень часто проходится работать со сторонними сервисами. Например, в качестве CDN мы используем Amazon CloudFront, для рассылок mailchimp, для e-commerce Cleverbridge. А еще существуют разные CRM, с которыми тоже нужна интеграция. Так вот, при помощи DI, если правильно выделять абстракции, можно заменить любое звено в цепи. А если вы пишете тесты для своего кода, без DI вообще трудно обойтись.
Ладно уж, вернул в зад. Ну не стоит быть настолько категоричным!
чуть не забыл, спасибо!
На самом деле мне режет глаз то, что не camelCase…
Для меня решающим при выборе того или иного стандарта является его распространенность и не более.
Прошу принять во внимание, что это правило применимо только для классов и методов. Во всех остальных случаях { располагается на той же строке.
Круто, но почему бы не следовать зендовым стандартам? framework.zend.com/manual/ru/coding-standard.coding-style.html.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность