2015年3月1日日曜日

Laravel4.2で独自ヘルパーを作成してautoloadする

たまにだけしかできていないですが、laravelの勉強をしていて独自ヘルパーを読み込めるようにしたいと思い、調べてみました。

どんなときにヘルパーを呼び出したかったかというと、セレクトメニューなどで表示する項目は文字だけど、DBに登録するのが一意の数字のときに、ビューで表示したい項目の番号をヘルパーに渡して、表示したい文字列に変換したいときなどです。

まず、ヘルパー用のhelpersディレクトリをappディレクトリ配下に作り、その配下にファイルを作成します。

$ mkdir app/helpers
$ vim app/helpers/HelperDemo.php
<?php
function demo()
{
    return "OK";
}

今回は呼び出せるかを確認したいので、OKを返すようにしておきます。ファイルを作成できたら、オートロードするようにcomposer.jsonを変更します。

$ vim composer.json
"autoload": {
      "classmap": [
           "app/commands",
           "app/controllers",
           "app/models",
           "app/database/migrations",
           "app/database/seeds",
           "app/tests/TestCase.php"
      ],
        "files": [
            "app/helpers/HelperDemo.php"
        ]
}

記述を追加するのは、autoloadの中にfilesという名前で要素を作成し、読み込みたいファイルまでのパスを記述します。

composer.jsonの変更が完了したら、dump-autoloadして読み込めばdemo()メソッドは呼び出すことができるようになります。

ヘルパーを複数作る可能性があるので、クラスのようにディレクトリを指定して、ディレクトリ内のファイルを全部読み込むことができれば良いなと思いました。

知らないだけでできるのかもしれませんが…

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが 下記が今回のエラーで書き込みできない感じのメッセージが出ています。  $ brew install minikube Updating Homebrew... Error: The following ...