Зарегистрируйтесь, чтобы продолжить обучение

Консоль (Tinker) PHP: Разработка на Laravel

В 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 с функциями описанными в статье

Аватары экспертов Хекслета

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

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

Для полного доступа к курсу нужен базовый план

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

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

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

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

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

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»