ラベル php laravel の投稿を表示しています。 すべての投稿を表示
ラベル php laravel の投稿を表示しています。 すべての投稿を表示

2017年10月24日火曜日

Composer updateで「PHP Fatal error: Allowed memory size of xxxx bytes exhausted」の対処法

方法は以下の2つがあります。
  1. もしcomposer.lockも一緒にコミットされていたら、vendorを”まるごと”再度「composer install」で解消できます。具体的な操作手順は以下の通りです。

    # vendorをバックアップをとっておくと安心
    mv vendor vendor_bk
    composer install
    composer info 或いは composer show でインストール済みの全パッケージの情報を確認

    ※ ここ一つ大きな制限事項があります。他の誰か既にcomposer update済み、かつcomposer.lockが最新の状態であることが前提としています。
  2. 一時的にメモリのサイズを指定してアップデータを実行します。具体的な操作手順は次の通りです。

    # まずcomposerコマンドのパスを表示
    which composer
    # 以下のような結果が出ると思います。
    /usr/local/bin/composer
    # メモリサイズを設定してアップデータを実行
    php -d memory_limit=-1 /usr/local/bin/composer --no-dev update バッケージ名

2016年11月6日日曜日

php Laravelで実行されたSQLを取得する方法

Laravelの「$query->toSql()」で実行されたsqlを見ることができますが、その方法で引数を見えないです。
代入した引数も見える方法はありますか。

調べたところ、queryを実行した直後に、「DB::getQueryLog()」でsqlも、代入した引数も見ることができます。

具体的に使い方は以下の通りです。

1、まず、ファイルの先頭に、以下を追加:
  use DB;
  
2、queryの実行前、以下を追加
  DB::enableQueryLog();

3、queryの実行直後に、実行されたsqlを取得することができます。
  
 DB::getQueryLog()


ステップ2と3を合わせた例です。↓

    DB::enableQueryLog();
            
            $result = $query->count();
    dd(DB::getQueryLog());

2016年10月22日土曜日

php laravelでアップロードしたファイルの名前と絶対パスの取得方法

phpのlaravelで、UploadedFileからアップロードしたファイルの絶対パス($_FILE['tmp_name'])の取得方法は?

UploadedFileを見ると、以下の情報が見れます。

array(
       'test' => false,
       'originalName' => 'triangle-in-the-mountains.jpg',
       'mimeType' => 'image/jpeg',
       'size' => 463833,
       'error' => 0,
)
phpのように、$_FILE['tmp_name']を取得したい時があります。

その時、「getRealPath()」を使えば、アップロードされたtmp_nameを取得することができます。

「$uploadedFile->getRealPath();」で「/tmp/php5Wx0aJ」のような結果を得られます。

もちろん、getFilename() と getPathname() も使えます。

最後補足、「UploadedFile」ファイルはphpの「File」を継承しています。