問題タブ [illuminate-container]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - スタンドアローン Illuminate IoC Container の Illuminate/Support/Facade/App ファサードを作成する方法
私のスタンドアロン (Laravel なし) プロジェクトでは、Illuminate IoC コンテナーを使用したいと考えています。また、コンポーネントApp
によって提供されるファサードを介してアプリ コンテナーにアクセスしたいと考えています。illuminate/support
両方のコンポーネント (v5.0.28) をインストールしました。これが私の(簡略化された)コードです:
残念ながら、何かをバインドしようとすると、次の結果になります。
これがその行のコードです
、、および$instance
のインスタンスはどこにありますか。問題は、が のインスタンスではなく、クラスが静的プロパティで任意の関数を呼び出すことをサポートしていないことです。Illuminate\Support\Facades\App
$method == 'bind'
$args[0] == 'w'
$args[1] == 'Widget'
$instance
Illuminate\Container\Container
Illuminate\Support\Facades\App
$app
それを機能させるために、次の関数をに追加しましたIlluminate\Support\Facades\App
:
しかし、確かに外部コンポーネントを編集することは正しいことではありません!!! 確かに誰かがこれに遭遇したことがあります!
質問は次のとおりです。これを行う適切な方法は何ですか?
php - Lumen MySQL クエリが UTF8 値を期待どおりに処理しない
UTF8 エンコーディングを使用し、特殊文字を含むユーザー名が多数含まれるデータベースに対して作業を行っています。
ユーザー テーブルをクエリすると、Lumen は誤ったデータで応答します。mysqli
andを使用して同じテーブルにクエリを実行しようとしましたがPDO
、期待どおりの結果が得られました。テストするためにサンプルルートを設定しました:
ルートにアクセスすると、次の応答が返されます。
上記のテキストが正しく表示されない場合の応答のスクリーンショットを次に示します。
私が知る限り、Lumen の MySQL 設定はデフォルトで UTF8 に設定されており、変更できませんvendor/laravel/lumen-framework/config/database
。
何が原因なのか途方に暮れています。この不一致を追跡するには、他に何ができますか?
php - Illuminate\Foundation\Application.php の with() は何をしているのですか?
Illuminate\Foundation\Application.php
理由はすぐに説明しますが、現時点では、Laravel 4の 606 行目を理解しようとしています。
どこでwith()
定義されていますか?
私がよく知らない PHP の関数または言語構造であれば、PHP.net で検索しても無敵のように思えます。私の現在のプロジェクトは、その行で静かに失敗していると判断しました (私の開発サーバーではなく、本番サーバーでのみ)。クラッシュをさらに追跡する場合は、どこにあるかを知る必要がwith()
あるので、うさぎの穴をさらに下に移動できます。
database - Laravel 5.0.33 Illuminate\Database\Eloquent\Model が 5 行目に見つかりません
アプリ内のファイルEmail.php
は次のとおりです。非常に単純ですが、機能しません。
Laravel 5.0.33 Illuminate\Database\Eloquent\Model が 5 行目に見つかりません
laravel - laravelの外でパッケージを照らす
私は Laravel を初めて使用します。Laravel 以外のほぼすべての L5 パッケージを使用しています。しかし、これらを機能させるにはいくつかの問題があります。
これは私の composer.json ファイルです:
それが index.php です。
そして TestController クラス:
TestController の show メソッドを呼び出すと、次のエラーが発生します。
[致命的なエラー] /var/www/html/vendor/illuminate/container/Container.php:736 で「Class config does not exist」というメッセージを含む例外「ReflectionException」をキャッチできませんでした:736
構成パッケージの使用方法がわかりません。これがこのエラーが発生する理由だと思います。構成パッケージにはサービス プロバイダーがないため、これを開始できません。
私はサードパーティのカスタムphpフレームワークを使用しているため、laravelの外でilluminateパッケージを使用しようとしていますが、いくつかの理由でL5に徐々に移行する必要があります。これがベストプラクティスである場合は、あなたの経験が必要です。
mysql - Lumen/Laravel 5.1 - 呼び出し元のストアド プロシージャがトランザクションをコミットしているように見える
Lumen 5.1.3 で統合テストを作成しています。私のテストのほとんどは、トランザクションを正常にロールバックします。以下は、成功したロールバックがどのように見えるかをまとめたものです (コードを単純化しています。実際には、トランザクション管理は、PHPUnit の @before アノテーションにアタッチした特性を介して行われます)。
すべてが良いです。このテストの後、ユーザー テーブルは空です。
さて、ここで私は混乱します。ミックスに SP を追加すると、ロールバックされません。
新しい User レコードは実際にコミットされています。DB::rollBack();
ストアド プロシージャを実行すると、効果がありません。
エラーはありません - すべてが成功します。DB::rollBack();
コマンドに到達していることも確認し ました。
では、SP を呼び出した場合にのみトランザクションがコミットされるのはなぜですか? とてもイライラする.. :(
編集1:
あなたの疑いは的中しました。これがSPです(大きいので90%折りたたんでいます):
TRUNCATE
おそらく、コミットしているのは SP 自体ではなく、SP内のステートメントのみでしょうか?
TRUNCATE
が使用されているのはposition
、リーダーボード テーブルに自動インクリメントする列があり、リセットする必要があるためです。DELETE FROM table
自動インクリメントをリセットしません..