Pull to refresh
187
0
Альберт Степанцев @AlexLeonov

Программист. CTO. Архитектор. Преподаватель.

Send message
На кой черт вам делать итерацию внутри обьекта и перебирать все его свойства?

PHP очень гибкий язык. Собственно, об этом и написана статья.

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

Разделять интерфейс и реализацию, понимаете? Не этому ли учат на первых лекциях по ООП?

90% задач — собрать данные, объединить по массиву ключей, осуществить поиск, сохранить в базу.

И тут нас настигают две проблемы.
1. Массив — не объект, у него нет специализированного типа, значит нет контроля типа, приходится городить сложную валидацию вместо простого instanceof
2. Массив — не объект, у него нет методов, поэтому приходится городить «внешние методы» и тут см. п. 1.
И мы с вами очень плавно переходим к тому, что нам нужны всё-таки типы и методы… А это что? Это классы и объекты. Чёрт… Засада какая!

Вы просто хотите стать умнее, или что?

Куда уж больше-то :)
Спасибо за отзыв. Учту в будущих статьях.
Ну как же нет…
Вот же: «В SPL включено несколько встроенных классов итераторов» и далее по тексту — ровно эта ссылка.

Впрочем, вы правы, список важный, продублировал в списке литературы.

И опять же вы говорите «важнее». «Список классов из SPL знать наизусть» важнее чем что? Чем знать о существовании iterable и о том, что это такое? Позвольте не согласиться.
Печальная история о том, что в команде проекта нет человека, который лично, своей задницей, отвечает за превращение оценки в человеко-часах в сроки на календаре.

Пока такого человека не появится, пока он не взвалит на себя тяжкий труд разбираться в каждой конкретной ситуации в магии таких преобразований — фейлы будут вас преследовать на каждом проекте.

Программист дает оценку задач. И отвечает за свою оценку в разумных пределах.
Тим-лид? Дает сводную оценку трудозатрат и рисков. И отвечает за эту оценку.

Сроки? Это не сюда, это к тем, кто работает с заказчиком. Программист не должен ничего знать о сроках. Его задача — сделать задачу, оцененную в 2 часа, не более, чем за 3 часа. Грубо говоря ))
Разумеется, никто так в повседневной речи не говорит и не пишет. Но — контекст. Это тот самый культурный контекст, без которого вы современный язык не поймете.
Ой, ладно. Английский — простой.
Да, язык прост. Это факт. Однако то, чему вас тут учат и «настоящий английский» — это два разных языка.

Переведите с ходу простейшее словосочетание «thou seest» *? А это вполне себе нормативный английский, и я уверен, что однажды вы такое в письменной речи встретите, хотя бы в виде цитаты.

* Это очень простой тест. Простейший. И тупейший. Который показывает, что 9 лет изучения английского (7 в школе и 2 в институте) прошли для вас зря. Не вы в этом виноваты, разумеется, а те, кто вас учил на текстах типа «London is a capital...»
Почему «не интересоваться смежными областями»? Я интересуюсь.

Например интересуюсь, как написать на PHP многопоточный неблокирующий код, как собрать ZTE под RHEL, интересуюсь вопросом, как на один инстанс postgres класть 10 000 insert-ов в секунду, не положив этот инстанс, интересуюсь, как автоматизировать деплой php-приложения на несколько десятков тестовых стендов и запустить (опять же в несколько потоков) толстую пачку тестов…

Это не смежные области?

Ну неинтересен мне JS и фронт, не люблю я их — что же делать-то?
Для меня сочетание в резюме «PHP+HTML+JS+CSS» это скорее минус, показывающий, что человек сам не знает, чего хочет в профессии.

И да, на PHP я пишу 13 лет. И все эти годы прекрасно обходился без JS и вёрстки. Что я делаю не так?
Дочитал до
Php-программист в 2017 году не может обойтись без js и верстки

понял, что статья — полная чушь.
Спасибо, что поставили эту фразу пораньше в тексте, сэкономили мое время.
class Controller 
{
    
    public $layoutFile = 'Views/Layout.php';


Кол вам за тему «MVC», приходите пересдавать.
Неужели название GoldEd еще не предложили? Буду первым ))
Половина статьи о том, что надо использовать PDO…

На дворе 2016 год, просыпайтесь, коллеги!

Этот шаг необязателен для версий PHP 5.3 и выше, так как для работы PDO больше не требуются DLL

Это вы для кого пишете? Послание в прошлое?
Спасибо. Думал, что это бейджик от Travis, но там такого не нашел.
Самое интересное и не рассказали — как бейджик сделать? ))
trait THasEmail 
  implements IHasEmail 
{
  protected $email;
  public function getEmail()
  {
    return $this->email;
  }
}

class User {
  use THasEmail;
}

assert(User instanceof IHasEmail);


https://wiki.php.net/rfc/traits-with-interfaces

P.S. Писал комментарий с калькулятора, возможны неточности.
Пост безумно интересный, спасибо.

Но уж очень режет глаз
SQL Server
вместо MS SQL Server. Задевает этот нелепый (и непроизвольный) снобизм, как будто бы других серверов, кроме MS, на свете нет!
Если речь о полях класса (статические свойства), то да — в PHP такое сплошь и рядом, называется «позднее статическое связывание». Разумеется, это исключительно рантайм-фича (а как иначе?)

Ну и трейты там же имеют право обращаться к любым свойствам и методам подмешивающего их класса-или-объекта. Если же свойства или метода вдруг нет — fatal error. Разумеется, тоже рантайм.

Впрочем вы, очевидно, ждали ответ про compile-time. Такого, насколько я знаю, нет нигде. Буду рад, если кто-то укажет на пробел в моих знаниях.
Еще один критик-теоретик (см. его активность: https://github.com/binarygenius?tab=activity ) решил заработать себе баллов на критике PHP.

Видимо каждый начинающий программист должен написать дейтинг на PHP, свою CMS свой фреймворк и покритиковать PHP. ОК. Примем это просто как должное. Все должны через это пройти. Переболеть, как ветрянкой в детстве. И лучше в детстве, поверьте, очень печально смотреть, как взрослый мужик болеет ветрянкой (или критикует PHP).

А мы, практики, пойдем дальше использовать этот язык для решения бизнес-задач. Которые, надо отметить, он решает быстро и очень качественно. Кому не нравится — можете и дальше писать статьи о том, какой PHP плохой и какое у него омерзительное сообщество.

Information

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