slim架構接入pysh

來源:互聯網
上載者:User
由於實際開發中需要查看介面傳回值結構和實際的資料範例,每次都寫controller再訪問url看下是比較麻煩的。

所以如果能像 php -a這樣互動的方式調用網站應用程式中定義的model和function的話,將會極其的方便。

目錄結構如下:

app/public/tinker

app為網站具體邏輯實現的部分

public下面有1個index.php為網站的入口

tinker就是我們需要接入pysh,實現REPL的檔案了

由於Slim裡面需要PATH_INFO的值,但是命令列啟動並執行時候,這個值是不存在的,所以需要在代碼中mock一下;代碼如下:

#!/usr/bin/env phpenvironment = \Slim\Environment::mock([    'PATH_INFO' => '/playground']);$app->notFound(function () use ($app) {    $path = $app->environment['PATH_INFO'];    echo "Cannot route to $path" . PHP_EOL;    $app->stop();});$app->error(function (\Exception $e) use ($app) {    echo $e . PHP_EOL;    $app->stop();});$app->any('/playground', function () {    $config = new \Psy\Configuration([        'tabCompletion' => true,        'tabCompletionMatchers' => [            new \Psy\TabCompletion\Matcher\ClassNamesMatcher,            new \Psy\TabCompletion\Matcher\ClassMethodsMatcher,            new \Psy\TabCompletion\Matcher\ClassAttributesMatcher,            new \Psy\TabCompletion\Matcher\FunctionsMatcher,        ],    ]);    $shell = new \Psy\Shell();    $shell->run();});$app->run();
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.