+1.93
Рейтинг
3.84
Сила

FAQ: Как заставить IDE автокомплитить scope методы в ActiveRecord Yii2

В последнее время часто стали задавать вопрос — как же заставить IDE дополнять предустановленые в модели scope методы. Для начала посмотрим, как разработчики фреймворка предполагают работу со scopes.

Вкратце. В модели создается статический метод, который дергается классом ActiveQuery черезе магический метод __call. Но эти методы не подхватываются IDE (на примере PhpStorm 7).



Читать дальше →

Ответ на «микрооптимизацию в PHP»

Оригинал: A Response to “Micro-Optimizations in PHP”

На прошлой неделе я прочитал пост, рекомендованный мне в PHP Weekly. Он назывался Микрооптимизация в PHP. Я повелся, ведь всегда стремлюсь быть лучшим PHP разработчиком. Пост начинается с общих рекомендаций, которые, по сути, являются даже не микро-, а микро-микрооптимизацией. Продолжая читать, я приходил к выводу, что описанное в тексте и вовсе имеет мало общего с оптимизацией. В итоге я могу сказать, что пост был написан безответственно — заявления автора не имели обоснований.

Обидно, что я получаю такие низкокачественные посты из рассылки PHP. Подобные статьи путают разработчиков, что, в свою очередь, способствует созданию некачественных приложений в сообществе PHP-разработчиков. Эта ситуация заставляет задуматься о росте числа хейтеров PHP.

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

Читать дальше →

Отправка email уведомлений в Yii2

Добрый день многоуважаемое сообщество!

Сегодня я хотел бы рассказать о новом расширении для отправки различных email уведомлений в yii2. Это простая обертка над PHPmailer. Суть её заключается в работе с двумя объектами — Postman (почтальон) и Letter (письмо).

Читать дальше →

Перевод: Тестируйте шаг за шагом

Оригинал: You Need tests...just Not Yet

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

Если вы верите в силу разработки через тестирование (Test-Driven Development, TDD), тогда ответ будет следующим. Вы начинаете писать тесты сразу после старта работы над проектом и так до конца, шаг за шагом. Я верю, что TDD может быть очень мощным средством разработки для создания модулей или компонентов.

Читать дальше →

Composer: Управление версиями


Оригинал: Composer Versioning

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

Читать дальше →

Grunt.js: волшебная палочка для фронтенд-разработчика

На сегодняшний день почти любой сайт, если он хоть немного сложнее домашней странички любимого кота, хранит под своим капотом кучу файлов с тоннами кода на css и javascript. Недобросовестные разработчики, ссылаясь на быстрый интернет пользователей, не стесняются выкатывать на продакшн свои творения в формате «as is», совсем не думая о том, что доля мобильного траффика растет как на дрожжах, а высокой скоростью мобильный интернет нас порадует еще очень нескоро. И это лишь один из поводов всерьез задуматься о грамотной сборке и оптимизации фронтенда. Нет, серьезно, берите свои многочисленные jquery-плагины, js-модули, виджеты, библиотеки, овощи там, рожь, пшеницу, вот это все, и минифицируйте, конкатенируйте, тестируйте, компилируйте, а такая магическая штука, как grunt.js, поможет в этом с помощью всего одной команды в консоли.

Читать дальше →

Эффективный рефакторинг


Оригинал: Effective Refactoring Strategies

Мой брат называет предновогоднюю неделю «потерянной» — за это время почти ничего невозможно сделать, потому что большинство людей уходят в отпуск, а оставшиеся заняты предновогодними приготовлениями. В это время у начинающих разработчиков программного обеспечения появляется прекрасная возможность сделать одну вещь, на которую у них всегда вечно не хватало времени: самое время сделать код более доступным для понимания.
У большинства разработчиков есть возможность выкроить несколько часов свободного времени для рефакторинга. Они могут, наконец, поменять сделанную в спешке еще в сентябре архитектуру разделов, могут написать тесты для разделов, которые остались непроверенными с апреля. Иными словами, за «потерянную неделю» можно сделать много полезных дел.
Но прежде чем погрузиться в пучину оптимизации кода не на шутку, следует учесть некоторые соображения.

Читать дальше →