Laravel tinker mode

Если я запустил php artisan tinker, интерфейс командной строки откроется с

Psy Shell v0.8.6 (PHP 7.0.8 — cli) by Justin Hileman
>>>

Теперь я ввожу такое слово, как «тест», и нажимаю клавишу возврата.

  • В какой режим я вошел?
  • Как мне выйти из этого режима? (ctrl + c выходит из tinker, но на самом деле я просто хочу иметь возможность снова выполнять команды, как обычно, что означает, что я набираю команду, и когда я нажимаю клавишу возврата, она будет выполнена)
  • Как я могу выполнять команды в этом режиме. Если я нажму Enter в этом режиме, я перейду к следующей строке, но команда не будет выполнена.

person Andreas    schedule 27.06.2017    source источник
comment
Покажите точные шаги, которые вы предприняли, чтобы войти в режим, о котором вы говорите. Psy Shell по умолчанию запускается при входе.   -  person Devon    schedule 27.06.2017


Ответы (2)


Когда я набираю "запустить PsySH", а затем набираю test, я не перехожу в другой режим. На самом деле я получаю сообщение об ошибке:

Предупреждение PHP: использование неопределенного постоянного теста - предполагается, что `` тест '' (это вызовет ошибку в будущей версии PHP) в коде Psy Shell в строке 1

Это может быть проблема с версией.

Но ...

Думаю, я знаю, о каком режиме вы говорите. Вы можете войти в этот режим, набрав одну одинарную кавычку ' и нажав Enter.

Что делает PsySH, так это позволяет вам вводить данные по нескольким строкам. Если в следующей строке вы просто наберете ';, вы должны увидеть "\n", потому что он захватил нажатый Enter.

Если вы хотите выйти из этого режима, вы можете:

  • Закройте любое сделанное вами вступительное заявление. Вы можете войти в этот режим, набрав «function { + Enter», «for(;;) { + Enter», одинарные кавычки и многое другое. Вам необходимо ввести соответствующее закрытие для начатого вами утверждения. Для функции }. Для строки ' или " и т. Д.
  • Нажмите ^ D (Control + D). Это вернет вас к приглашению PsySH. Это также будет работать во многих обычных системных оболочках, потому что ^D отправляет символ End-Of-File.
person Nathaniel Pisarski    schedule 15.10.2019

  • Tinker - это инструмент командной строки, который позволяет вам взаимодействовать с Laravel из командной строки.
  • Вы можете выйти из режима tinker либо ctrl + c (как вы упомянули), либо набрав exit; и нажав Enter.
  • Tinker основан на PsySH, вы можете думать об этом режиме как о построчном интерактивном парсере PHP. .

Так, например, вы можете сделать что-то вроде этого:

$ php artisan tinker
Psy Shell v0.7.2 (PHP 5.6.30-7+deb.sury.org~trusty+1 — cli) by Justin Hileman
>>> $testString = "test";
=> "test"
>>> echo $testString;
test⏎
=> null
>>> exit;
Exit:  Goodbye.
person Samsquanch    schedule 27.06.2017
comment
Спасибо за быстрый ответ. Единственное, что не работает на моей стороне, это то, что если я напишу exit; и нажмите Enter, следующее сообщение не будет Exit: Goodbye. Вместо этого я введу новую строку. - person Andreas; 27.06.2017
comment
Это могут быть различия в версиях. Я использую PHP 5.6 и более старую версию PsySH. Лично я обычно просто использую ctrl + c. - person Samsquanch; 27.06.2017
comment
Что произойдет, если вы наберете слово «тест» в качестве первого действия после того, как начнете возиться и нажмете клавишу ввода. Следующим шагом вы набираете echo hallo; и нажмите ввод. Это работает на вашей стороне? На моей стороне эхо-привет; не выполняется, когда я нажимаю ввод. Я ожидал, что получу привет, но когда я нажму Enter, я перейду на следующую строку. - person Andreas; 28.06.2017
comment
В первом случае я получаю ошибку, во втором возвращаю ожидаемый текст. Вы пробовали обновляться? Ваша версия может просто не работать. - person Samsquanch; 28.06.2017