Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос нашим менторам. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Консоль (Tinker)

В PHP встроен REPL, который позволяет быстро поэкспериментировать с языком.

$ php -a
Interactive shell

# Некоторые используют его как калькулятор
php > echo 3 ** 2;
9
# Можно вызывать любые функции и смотреть что получится
php > echo array_sum([1, 3, 2]);
6
php >

Для разработчиков, которые никогда не имели с ним дело, может показаться что REPL это игрушка, но это не так. Во многих языках программисты значительное время проводят в REPL, постоянно исследуя код. В мире Lisp-подобных языков даже есть понятие REPL-driven development.

Сейчас ситуация в PHP стала меняться. В первую очередь благодаря PsySH. Это тоже REPL для PHP, но в отличие от встроенного, он значительно мощнее и ориентирован на удобство отладки и исследования (интроспекции) кода. Одна из приятных особенностей этого REPL, в том, что не нужно ставить точку с запятой в конце выражений и результат любого выражения автоматически выводится на экран. А ещё цветной вывод.

Psy Shell v0.10.0 (PHP 7.3.11 — cli) by Justin Hileman
>>> 3 ** 2
=> 9
>>> array_sum([1, 3, 2])
=> 6

PsySH умеет конфигурироваться, что позволяет при его старте прогружать в память любой код на PHP. Благодаря этому, разработчики Laravel смогли создать REPL, который позволяет экспериментировать не только с обычными функциями, но и со всем фреймворком. Этот REPL называется Tinker. Начиная с текущего момента и на протяжении всего курса, мы постоянно будем использовать Tinker для проверки работы любых аспектов фреймворка.

Запускается Tinker как команда Artisan:

$ php artisan tinker
Psy Shell v0.10.0 (PHP 7.3.11 — cli) by Justin Hileman
>>> array_reverse([1, 2, 3, 4])
=> [
     4,
     3,
     2,
     1,
   ]

Из приветствия видно, что мы имеем дело с PsySH. Здесь можно работать как с самим PHP, так и с Laravel. В последний включено множество функций, не имеющих прямого отношения к вебу, но упрощающих работу:

>>> Str::ascii('трансляция в аски')
=> "translyatsiya v aski"
>>> last([3, 2, 8])
=> 8

Tinker и PsySH добавляют несколько полезных функций от себя. Эти функции позволяют посмотреть историю команд, документацию по функциям, увидеть их содержимое и многое другое. Ниже несколько примеров:

>>> show last # посмотреть определение функции
  > 726|     function last($array)
    727|     {
    728|         return end($array);
    729|     }

>>> history # история
75: Str::ascii('трансляция в аски')
76: last([3, 2, 8])
77: show last

>>> dd([1, 2, [3, 2, ['show', ['one' => 'two']]]]) # вывести красиво данные
array:3 [
  0 => 1
  1 => 2
  2 => array:3 [
    0 => 3
    1 => 2
    2 => array:2 [
      0 => "show"
      1 => array:1 [
        "one" => "two"
      ]
    ]
  ]
  ]

>>> doc head # посмотреть документацию по функции
function head($array)

Description:
  Get the first element of an array. Useful for method chaining.

Param:
  array  $array

Return:
  mixed

Самое интересное при работе с Tinker начнётся позже, когда мы познакомимся с ORM и тестами.

Самостоятельная работа

  1. Поэкспериментируйте в tinker с функциями описанными в статье

<span class="translation_missing" title="translation missing: ru.web.courses.lessons.mentors.mentor_avatars">Mentor Avatars</span>

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят менторы из команды Хекслета или другие студенты.

Для полного доступа к курсу, нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, даст возможность обращаться за помощью к менторам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».