FuelPHPのDockerを作った
FuelPHP の Docker を作りました
見てもらったらわかるんですが、ほぼ https://github.com/cwbit/cakephp-docker です。。。
Thanks cwbit!
telnet localhost 25でConnection closed by foreign host.
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connection closed by foreign host.
/var/log/mail
を見るとこんな感じのログが
Feb 8 09:43:20 www3075ue postfix/smtpd[12732]: connect from localhost[127.0.0.1] Feb 8 09:43:20 www3075ue postfix/smtpd[12732]: warning: SASL: Connect to private/auth failed: No such file or directory Feb 8 09:43:20 www3075ue postfix/smtpd[12732]: fatal: no SASL authentication mechanisms Feb 8 09:43:21 www3075ue postfix/master[23716]: warning: process /usr/libexec/postfix/smtpd pid 12732 exit status 1 Feb 8 09:43:21 www3075ue postfix/master[23716]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Traitと継承元で同一メソッドがあたっときどちらが優先されるかのメモ
PHP 7.2 の環境です
Traitと継承元で同一メソッドがあたっとき、Trait のメソッドのほうが優先されるようです
<?php trait Runnable { function run() { echo __METHOD__ . "\n"; } } class Human { function run() { echo __METHOD__ . "\n"; } } class Female extends Human { use Runnable; } class Male extends Human { use Runnable; function run() { return parent::run(); } } $female = new Female(); $female->run(); //-> Runnable::run $male = new Male(); $male->run(); //-> Human::run
LaravelのDuskテストでログインテストでセッションが生きててハマったお話
複数のテストを1ファイルに書いている場合、そのファイル中はセッションが生きているっぽい
なので、setUp とかで logout() してやらないといけないっぽい
以下の例では admin
という guard からログアウトしています
なお、なぜか tearDown で動かなかった(未検証)
<?php class LoginTest extends DuskTestCase { use DatabaseMigrations; protected function setUp() { parent::setUp(); try { $this->browse(function (Browser $browser) { $browser->logout('admin'); }); } catch (\Throwable $e) { echo $e->getMessage() . "\n"; } } // ログインするテスト /** * * @return void * @throws \Throwable */ public function testRedirectAfterLogin() { $admin = factory(Admin::class)->create(); $this->browse(function (Browser $browser) use ($admin) { $browser->visit('/admin/articles') ->assertPathIs('/admin/login') // ここが動かなかった! ->type('email', $admin->email) ->type('password', 'secret') ->click('@login') ->assertPathIs('/admin/articles'); }); } }
Slim2でTwigにテンプレートパスを追加する
<?php /** @var \Slim\Slim $app */ $app->view->getInstance() ->getLoader() ->addPath('../design');
でおk