20191230のlaravelに関する記事は2件です。

bashでhealth check

bashでhealth checkのめも

php-fpmとcrondを監視します

#!/bin/bash

while true
  do
      PHP=`sudo ps ax | grep 'php-fpm: master' | grep -v grep | wc -l`
      CROND=`sudo ps ax | grep 'crond' | grep -v grep | wc -l`
      if [ $PHP = 1  ] && [ $CROND = 1  ] ; then
          echo "HTTP/1.0 200 Ok"  | nc -l 8080
      else
          echo "HTTP/1.0 500 NG"  | nc -l 8080
      fi
      [ $? != 0 ] && break
  done

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

?【Laravel】register_shutdown_function()使うときは配列にして$thisも渡す

環境

PHP 7.3.10
Laravel 6.5.0

やりたいこと

関数の実行終了前に任意の関数呼び出すregister_shutdown_function()をLaravelで使いたい
が、こいつを書くと下記の例外が発生する

ErrorException
register_shutdown_function(): Invalid shutdown callback 'HogeHoge' passed

どうやらインスタンスメソッドである「$this」を渡さないといけない様子

やったこと

引数を配列にして$thisと対象の関数名を渡す

HogeController.php
    /**
     * 完了前にコールバックを呼び出したい関数
     *
     * @param Request $request
     */
    public function doSomething(Request $request) {
        // 色々処理します
        // ...

        // ❌例外発生パターン
        register_shutdown_function('HogeHoge');
        // ?これで実行できます
        register_shutdown_function([$this, 'HogeHoge']);

        return back();
    }

    /**
     * 実行完了時に呼びだされるコールバック関数
     *
     * @return void
     */
    public function HogeHoge(): void {
        // ログ作成、終了処理等の何かをする
        // ...
    }

結果

例外なく呼び出せます
$thisじゃなくても指定できそうにも見えます

CakePHPでも同じ方法で解決できました

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む