PHPみたいな忖度の激しい言語では、xdebugの使用が基本であるにも関わらず、その設定についてはqiitaのコピペやら勘やらで凌いでる人がほとんどだと思われますが、ようやくついさっき個人的に腑に落ちたので共有しておきます。 xdebugでデバッグモード&ステップトレース等が機能する条件 条件としてはどうやら後述の3つしかありません。 どれがが掛けても、IDE側ではステップトレースは始まりません。 リモートPHP側だけデバッグモードに入った場合は、実行がガッツリ固まります。 条件1:リモートで xdebugのデバッグモードが起動できること xdebugモジュールを組み込む。のは当然として.... auto_start=1 && remote_enable=1であっても、実はデバッグモードは動いてません。 php.ini のxdebugセクションの auto_start remote_ena
はじめに Laravelのテストでsqliteのメモリ内データベースを使うと、途中でテーブルが存在しないというエラーがでる問題をなんとかしようとして、LumenでsqliteのURI Filenamesを使いたいでは、PDOがそもそもURI filenamesをサポートしてないというオチで玉砕しましたが、やっぱりテストは速い方がいいのでもう少し頑張ってなんとかならないか調べて見ました。 どうしてテーブルが存在しないエラーが出るのか Laravelは基本的にはデータベースへの接続は使い回してくれるはずで、なぜ新しい接続が作られるのかをちゃんと調べて見ます。 すると、テスト中でrefreshApplicationを行った後にエラーが出る(=新しい接続がつくられる)ことがわかりました。 つまり以下のようなことが起きたと考えられます refreshApplicationが実行されたので、サービスコ
はじめに PhpStormのリモートインタープリタにdocker-composeを選んで、デバッグ環境を整えた人向けの記事です。 phpstormでphpスクリプトを実行デバッグしてみよう GUIからdebug実行(下の虫)すると docker-compose run で実行してしまうと別コンテナになっちゃって、どうしても都合が悪い時とかありますよね。。 だから、docker-compose exec でbatchを動かしたいんだけど、どやってデバッグすんねんって困ってませんか? また、ブラウザから実行するんじゃなくて、terminal上からcURLでデバッグしたい時どうするんじゃいと困ってませんか? そんな悩める希少なかたにお届けします。 docker-compose exec で xdebug ON こんな感じで -e XDEBUG_CONFIG=remote_connect_back
<?php class HogeTestCest { public function _before(AcceptanceTester $I) { codecept_debug('_before'); } public function _after(AcceptanceTester $I) { codecept_debug('_after'); } /** * アノテーションなし */ public function hogeTest(AcceptanceTester $I) { $I->wantToTest('hogeTest'); codecept_debug('hogeTest'); } /** * @before before1 * @after after1 */ public function fooTest(AcceptanceTester $I) { $I->wantTo
PHPSTORM ①PHPの指定 prefarences -> languages&flameworks -> php CLIインタープリターが最初は何も入ってないので指定してあげる 「・・・」をクリック 「+」をクリックすると、PHP関連の選択肢が出てくるので選択する 俺の場合は「/usr/local/Cellar/php71/7.1.14_25/bin/php」 →MACのPHPがどこに入ってるかわからんくてめちゃ悩んだで・・・ そしたら「デバッガー:Xdebug2.6.0」が表示されていればOK ②SERVERの指定 prefarences -> languages&flameworks -> php -> server 名前:homestead ホスト:xxx.test(自分で指定したURL) ポート:80 デバッガー:xdebug プロジェクトファイルに合わせたサーバー上のパスを
public function testAdd() { $this->laravelModule->_loadPage('GET', '/admin/useradd'); //sentinelロールを取る(データベースから) $roles = Sentinel::getRoleRepository()->all(); $content = $this->laravelModule->_getResponseContent(); $this->assertContains('お名前', $content); $this->assertContains('部署名', $content); $this->assertContains('E-mail', $content); $this->assertContains('パスワード', $content); foreach ($roles as
wordで1行目 2行目 3行目 4行目...と文字を打ちtxtで保存し、 viエディタで下記コードを書き、ターミナルでphp aaa.phpとコマンドを打って表示させようとすると、 ?P?s??と表示されますが、原因がわかる方いらっしゃいましたらご回答願います。 $fp= fopen("/Users/tanakaakio/Desktop/phptanaka.txt","r"); $line = fgets($fp); fclose($fp); $hoge = file("/Users/tanakaakio/Desktop/phptanaka.txt"); print $hoge[0]; ?> Register as a new user and use Qiita more conveniently You get articles that match your needsYou ca
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 初投稿です。 これまであまり技術記事は書いたことありませんでしたが、良い機会だと思ったので書いてみることにしました。 書き慣れていないということもあり、言葉が足りておらず何言ってるかわからなかったり、色々と読みにくい部分も多いかと思いますが予めご了承ください。 ★まず最初に システム提供側としては、古いバージョンの言語の課題やサーバのファームウェアアップデート等、様々な懸念があるかと思います。 最初からバージョンアップしやすいような作りや障害に強い構成にしておけばいいと言われてしまうとそれまでですが、昔から運用されているシステムでは、沢
仕事でどうしてもDBトランザクションでまかなえない排他制御を行う必要が出てきたので。 普段あまりテストを書くほうではないのですが、検証環境で並行処理の競合状態なんてそうそう発生しないのでさすがにテストを書かないとまずいと思い勉強したものです。 関連ソースはこのあたり。 https://gist.github.com/kuinaein/ad4b6167f712f4035a8f31a16e13c905 テスト対象メソッドの概要 malkusch\lockのラッパーです。内部でFlockMutexを利用しています。 $timeoutの単位は「秒」です。 class ConcurrentUtil { public static function synchronized(string $key, \Closure $closure, int $timeout = 10) { // ... } }
$ sudo docker-compose -f docker-compose.yml -f docker-compose.chrome.yml -f docker-compose.pgsql.yml -f docker-compose.dev.yml build --pull --no-cache mailcatcher uses an image, skipping db uses an image, skipping Building eccube3 Step 1/28 : FROM eccube/php-ext-apache latest: Pulling from eccube/php-ext-apache . . . Step 17/28 : ADD clone-${DIRTYPE}.sh /clone.sh ---> 7a670b8c8cb4 Step 18/28 : RUN
そろそろソースコード単位で動きを追いたい年頃になって来ました。 Debugできるようにする PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI) - Shin x blog 最初はこれ見てやろうとしたんですがレポジトリがどうのこうのとか言い出してよくわからなくなりました。 そもそも2014年というあたりで回れ右すべきだった。 いや流石にHomesteadさんはなんかあるやろと検索したらズバリなタイトルが出て来ましたのでこれを参考にしてみます。 Homestead + Xdebug + PhpStorm でリモートデバッグ環境をつくる - ラボラジアン PHP7.2にはXdebugがない? 上記資料では7.1だったんですが、Homesteadは7.2を指してるんですよね。 で、7.1のフォルダにはxdebugのiniファイルが
XAMPPのPHP7でXdebugを使う場合 XdebugのDLLをダウンロード XAMPPのバージョンによっては環境が異なりXdebugのDLLが適用できないものもある。 まずは、XAMPPでApacheを起動させる phpinfo()でPHPの情報を表示 環境にあったXdebug.dllをダウンロード phpinfo()で出力されたソースコード(html)を全部コピー https://xdebug.org/wizard.php のサイトのテキストボックスにコピーしたソースコードを貼り付ける [Analyse my phpinfo() output]ボタンを押す 現在の環境に合ったDLLのファイルがダウンロードできるのでこれをダウンロードする C:\xampp\php\ext にダウンロードしたDLLを入れる php.iniを編集 下記を末尾に追記 ただしphp_xdebug-2.6.0
前提 Laravel 5.5 PHP 7.1 PHPUnit 6.5.8 書くこと LaravelのHTTPテストでPOST値を投げる書き方 (公式ドキュメントで見つけられなかった。 見逃したかな) やり方 <?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class ExampleTest extends TestCase { public function test_商品の登録処理() { //第二引数にPOST値の配列を渡すだけ $response = $this->post('/item/add',[ 'item_id' => '1', 'item_name' => 'ほげほげ' ]); //登録処理が完了して、一覧画面にリダイレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く