html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Boris — небольшой, но надежный REPL для php tutorial

REPL есть у python, ruby, clojure. REPL — read-eval-print loop. Если описать на псевдокоде что такое REPL — это будет выглядеть как-то так:
while(true){
    echo eval($input->get());
}

Подобная реализация позволяет разработчику эксперементировать с кодом как ему вздумается без создания файлов. Вы можете совершить ошибку, Boris выдаст сообщение об этом, но продолжит работать ожидая новый код.

image

Требования


  • PHP >= 5.3
  • The Readline functions
  • The PCNTL functions
  • The POSIX functions

Установка


Boris доступен через composer:
composer require d11wtq/boris dev-master

Или же по старинке:
git clone git://github.com/d11wtq/boris.git
cd boris
./bin/boris


Использование


При старте Boris появляется приглашение:
boris>

Попробуйте что-то написать, Boris это обработает и выдаст результат. Если у вас длинное многострочное выражение, Boris соберет его вместе и выполнит вместе. Для отмены любых операций используется ctrl + c. По умолчанию все результаты выдаются функцией var_dump
boris> $x = 1;
int(1)
boris> $y = 2;
int(2)
boris> "x + y = " . ($x + $y);
string(9) "x + y = 3"
boris> exit;

Для выхода из утилиты используется ctrl + D.

Использование в проектах



Все очень просто:
require_once 'lib/autoload.php';

$boris = new \Boris\Boris('myapp> ');
$boris->setLocal(array('appContext' => $appContext));
$boris->start();

Здесь инициализируется утилита с глобальной переменной appContext, доступной из Boris.

Есть возможность добавить колбэки перед стартом утилиты. Существует два варианта их добавления:
$boris->onStart('$foo = 42; $bar = 2; echo "Hello Boris!\n";');

$boris->onStart(function($worker, $scope){
  extract($scope);
  echo '$foo * $bar = ' . ($foo * $bar) . "\n";
  $worker->setLocal('name', 'Chris');
});

Сначала мы передаем строку кода, которую Boris просто исполнит через eval. Затем исполним callback, который экспортирует в себя данные из области видимости Boris, произведет с ними некоторые действия, а затем добавит переменную $name в Boris.

Ссылка на репозиторий.
Полезная штука?

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

Проголосовало 542 человека. Воздержалось 109 человек.

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

1

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • habrahabr.ru
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции