[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

PHPに関するyoheiMのブックマーク (20)

  • DBからの検索結果をPHPで並び替える(array_multisortの利用、昇順、降順、複数のソートキー、ユーザー定義ソート) - YoheiM .NET

    2019/11/16更新DBからの検索結果をPHPで並び替える(array_multisortの利用、昇順、降順、複数のソートキー、ユーザー定義ソート) こんにちは、@yoheiMuneです。 先日は「PHPの連想配列のソートいろいろ」を書きました。 今日は、データベースからの取得した結果(配列の中に複数の連想配列が含まれているもの、いわゆる多次元配列)を、array_multisort関数を用いて、並び替える方法をブログに書きたいと思います。 目次 今回説明に使うデータ 以下のような、配列の中に連想配列が入ったもの(=多次元配列)を使いたいと思います。 $fruits = [ array('id' =>'01', 'name' => 'apple'), array('id' =>'02', 'name' => 'orange'), array('id' =>'03', 'name' =>

    DBからの検索結果をPHPで並び替える(array_multisortの利用、昇順、降順、複数のソートキー、ユーザー定義ソート) - YoheiM .NET
    yoheiM
    yoheiM 2019/11/15
    多次元配列のソート
  • [PHP] 連想配列を並び替えする方法(キーでのソート、値でのソート、ソート順の独自定義) - YoheiM .NET

    yoheiM
    yoheiM 2019/11/14
    連想配列のソートいろいろ
  • [PHP] 関数から複数の値を返す。複数の変数で一度に受け取る(タプル代入) - YoheiM .NET

    PHPの関数はarray()を用いて複数の値を返却できます。またそれらの値をlist()を用いて、複数の変数へ一気に代入できます。今日はその実装方法をブログに書きたいと思います。 目次 関数で、複数の値を返す PHPの関数で複数の値を返したい場合、array()を用いて複数の値を返却できます。 function getPerson() { $name = 'Yohei'; $age = 33; return array($name, $age); } $person = getPerson(); echo $person; // [ 'Yohei', 33 ] 配列に複数の値を入れて返す、というのはシンプルで分かりやすいですね。 list()を用いて、複数の変数に一括代入する PHPでは、list()を用いて、複数の値を複数の変数に一度に代入できます。 list($name, $age)

    [PHP] 関数から複数の値を返す。複数の変数で一度に受け取る(タプル代入) - YoheiM .NET
    yoheiM
    yoheiM 2019/11/12
    array()とlist()で一括代入。
  • [PHP] json_encode()で、日本語をUnicodeエスケープ(\uXXXX)させない方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、PHPの配列をJSON文字列にする時に使うjson_encode()関数について、日語などのマルチバイト文字をエスケープさせない方法を、ブログに書きます。 目次 何が問題か json_encode()を普通に実行すると、日語がユニコードでエスケープ(\uXXXX)されます。 $data = [ "message" => "こんにちは" ]; json_encode($data); // 出力:{"message":"\u3053\u3093\u306b\u3061\u306f"} \u3053\u3093\u306b\u3061\u306fの部分がUnicodeエスケープですが、これをさせたくない場合にどうしたら良いか、を解決したいと思います。 なお、PHPを気軽に実行したい場合、オンラインエディタ(Online PHP Editor)が

    [PHP] json_encode()で、日本語をUnicodeエスケープ(\uXXXX)させない方法 - YoheiM .NET
    yoheiM
    yoheiM 2019/07/10
    json_encode()で日本語をエスケープしない。
  • [Laravel] Uniqueバリデーションで、論理削除を考慮するなど、条件をカスタマイズしたい - YoheiM .NET

    こんにちは、@yoheiMuneです。 Laravelのバリデーションはそれだけで非常に強力ですが、ドキュメントには記載のない、拡張ポイントがあります。今日はUniqueバリデーションについて、拡張できるポイントをブログに書きたいと思います。 目次 何がしたいのか Laravelのバリデーションの一つUniqueチェックを用いると、データベースのテーブルの指定したカラムで、値がユニークであるか(一意であるか)をチェックできます。例えば以下のように実装します。 $request->validate([ // usersテーブルのemailカラムで一意チェック. 'email' => 'unique:users' ]); また、テーブルのどのカラムを用いて検査するのか、明示的に指定することもできます。 $request->validate([ // usersテーブルの「mail_addres

    [Laravel] Uniqueバリデーションで、論理削除を考慮するなど、条件をカスタマイズしたい - YoheiM .NET
    yoheiM
    yoheiM 2019/01/08
    Uniqueバリデーションのカスタマイズ
  • [Laravel] Mailableクラスを作らずに、Mail::sendでサクッとメールを送信する - YoheiM .NET

    こんにちは、@yoheiMuneです。 Laravelのメールに関するドキュメントでは、Mailableを実装したクラスを作る手順が紹介されていますが、わざわざ作るのは面倒です。それを作らず簡単にメール送信できる方法があるので、今日はその実装をブログに書きたいと思います。 前提条件 Laravelでのメール送信は、SFTP、Mailgun、SES、など様々な送信方法が用意されています。こちらのドキュメントを参考に行ってください。 それらのセットアップが完了したのちのメール送信部分のPHP実装について、このブログでは記述しています。 Mailファサードを使ったメール送信 Mailableを実装したクラスを作らずとも、Laravelが提供するMailファサードで、メール送信処理を行うことができます。 以下では、Controllerにてメールを送信する実装方法を紹介します。 <?php name

    [Laravel] Mailableクラスを作らずに、Mail::sendでサクッとメールを送信する - YoheiM .NET
    yoheiM
    yoheiM 2018/12/28
    メール送信機能
  • [Laravel] EloquentでAttributeと$appendsを使って、独自定義のフィールドを作る - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はLaravelネタで、Eloquentで独自属性(独自のプロパティ)を定義して、それをJSONに含めて返す方法をブログに書きたいと思います。 目次 何がしたいのか Eloquentで作成したモデルは、対応したデータベースのテーブルを表現しています。例えば、ユーザーの投稿を表現するpostsテーブルがあるとします。その中で投稿ファイルの名前を保持するフィールド(file_name)がある場合に、クライアントへのレスポンスはファイル名ではなくてファイルにアクセス可能なURLで返したいという場面が多いです。 // 取得できるものはfile_name file_name : '1.jpg' // しかし、クライアントへ返却したいのは、それにアクセスするためのURL file_url : 'https://xxx.s3.ap-northeast-1.am

    [Laravel] EloquentでAttributeと$appendsを使って、独自定義のフィールドを作る - YoheiM .NET
    yoheiM
    yoheiM 2018/11/29
    独自プロパティの定義
  • [Laravel] Eloquentのwith関数で、子テーブルの情報をまとめて取得する(Eager Loading) - YoheiM .NET

    こんにちは、@yoheiMuneです。 Laravelで実装していて、親テーブル取得時に関連する子テーブルの一覧も合わせて取得したいことがあると思います。そんな時に便利なwith関数について、今日はブログを書こうと思います。 目次 何がしたいのか 例えば、投稿を表現するpostsテーブルと、その投稿内容(=1〜N枚の画像)を表現するpost_contentsテーブルがあるとします。特定のPostを取得した際に、それにひもづくPostContentsを一覧で取得したい場合に、どうしたら良いかを記載しています。 手順1:モデル定義で関連(hasMany)を表現する まずは、PostsとPostContentsのモデルを定義し、hasManyを用いて関連も合わせて定義します。 <?php namespace App; use Illuminate\Database\Eloquent\Model;

    [Laravel] Eloquentのwith関数で、子テーブルの情報をまとめて取得する(Eager Loading) - YoheiM .NET
    yoheiM
    yoheiM 2018/11/27
    Eager Loading
  • [Laravel] Token認証で利用するキー(api_token)の名前を変更する - YoheiM .NET

    こんにちは、@yoheiMuneです。 Laravelで、Ajax向けのAPIを作る場合に、トークン認証を使うことが個人的に多いのですが、Laravelのデフォルトのトークン認証をカスタマイズする機会があったので、それをブログに載せたいと思います。 目次 何がしたいのか Laravelでは、以下のようにtokenを指定することで、トークン認証を使うことができます。 'guards' => [ 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ] ], この機能は便利で、よく利用しています。 Laravelは、認証に利用するtokenの値を、以下の優先順位で取

    [Laravel] Token認証で利用するキー(api_token)の名前を変更する - YoheiM .NET
    yoheiM
    yoheiM 2018/11/26
    カスタムガードでToken認証を拡張する。
  • [Laravel] SoftDeleteで、deleted_at以外のカラム名を使う - YoheiM .NET

    こんにちは、@yoheiMuneです。 Laravelの論理削除(SoftDelete)で、削除を表現するカラムをdeleted_at以外にする方法を、ブログに書きたいと思います。 なぜ必要か Laravelで論理削除(SoftDelete)を行うことができますが、デフォルトではカラム名はdeleted_atと決まっています。しかし例えば、Cake3で構築したデータベースを使い、サーバーはLaravelに作り変える場合などには、論理削除のカラム名が違う(deletedなど)ことがあります。 そのような場合に、どうやってdeleted_at以外のカラム名を指定するのかについて調べて実装したので、ブログにも残したい次第です。 論理削除で使うカラム名に任意の名前をつける 論理削除用のカラムを指定するためには、DELETED_ATという変数名を利用します。 例えばUserモデルであれば、以下のよう

    [Laravel] SoftDeleteで、deleted_at以外のカラム名を使う - YoheiM .NET
    yoheiM
    yoheiM 2018/11/20
    論理削除のカラム名を変更する
  • [PHP] Laravel5+のマイグレーションで、カラムが存在するかをチェックしてからカラム削除する - YoheiM .NET

    yoheiM
    yoheiM 2018/10/15
    マイグレーションでカラムの存在チェック
  • [PHP] Laravel5+のマイグレーションで、カラムをnullableに変更する - YoheiM .NET

    yoheiM
    yoheiM 2018/10/12
    マイグレーションでカラム変更
  • [PHP] LaravelのEloquentで全件削除する方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 LaravelのEloquentを用いた場合の、全件削除の実装方法をブログに書きたいと思います。 目次 対象バージョン Laravel5.6以上を対象としています。他のバージョンでは違う場合がありますので、適宜読替えをお願いします。 Eloquentで全件削除する(方法1) Eloquentで全件削除するには、以下のように実装します。 // 全件削除する User::query()->delete(); ポイントはquery()関数を呼ぶことでクエリにして、その後はクエリビルダーとしてdelete()を呼び出します。 Eloquentで全件削除する(方法2) トランケートを用いることも可能です。トランケートの場合、DBの自動採番もリセットできます。しかし、ロールバックができないので注意が必要です。 User::truncate(); クエリビルダを用

    [PHP] LaravelのEloquentで全件削除する方法 - YoheiM .NET
    yoheiM
    yoheiM 2018/05/31
    LaravelのEloquentで全件削除
  • [PHP] LaravelのSeeding機能を使って、初期データをデータベースに投入する - YoheiM .NET

    こんにちは、@yoheiMuneです。 いくつかのデータベース系のライブラリには同様の機能がありますが、Laravelにもシーディング(Seeding)という機能があり、それを使うことでデータベースへ簡単に初期データを投入することができます。今日はそれをブログに書きたいと思います。 目次 対象バージョン Laravelの5.6を対象としていますが、5系なら同じと思います。違う部分は適宜読み替えをお願いします。 シーディング(Seeding)機能とは マイグレーション機能と同じく、データベースを管理する機能の1つです。シード機能を用いることで、簡単にデータを投入することができます。サービスリリース時に必要な初期データ(設定データや初期ユーザーデータなど)を簡単に作成&投入することができます。 シードファイルの作成 シーディング機能を使うために、まずはファイルを作成します(その中に扱うデータを

    [PHP] LaravelのSeeding機能を使って、初期データをデータベースに投入する - YoheiM .NET
    yoheiM
    yoheiM 2018/05/23
    [Laravel] シーディング機能
  • [PHP] Laravelのマイグレーションで、テーブルを新規作成する - YoheiM .NET

    こんにちは、@yoheiMuneです。 マイグレーション機能があるとデータベースの管理が簡単にできて便利です。Laravelのマイグレーション機能を用いて、DBテーブルの新規作成する方法をブログに書きたいと思います。 目次 対象バージョン Laravelの5.6を対象としていますが、5系なら同じと思います。違う部分は適宜読み替えを御願いします。 マイグレーション機能とは テーブル作成やカラム追加などのデータベースへの変更を管理する機能です。Laravelの場合には、変更内容を記載したマイグレーションファイルを作成し(変更ごとに1つずつ作成する)、それをArtisanコマンドで実行します。 マイグレーション機能が便利な点として、Create文などのSQLそのものを書く必要がないこと、複数のデータベースに同じ記述で対応できること、ロールバックもコマンド1つでできること、PHPUnitテストなど

    [PHP] Laravelのマイグレーションで、テーブルを新規作成する - YoheiM .NET
    yoheiM
    yoheiM 2018/05/22
    Laravelのマイグレーションで、テーブルを作成
  • [PHP] Laravelでランダムな文字列を生成する - YoheiM .NET

    こんにちは、@yoheiMuneです。 アクセストークンの文字列作成など、ランダムな文字列を作成したいことが時々あります。Laravelでは便利な関数が準備されていて、それを使うと簡単に作成できます。今日はそれについてブログを書きたいと思います。 str_random関数を用いてランダム文字列を作成する Laravelには便利なヘルパー関数が多数(公式サイトへ)用意されていて、その中にstr_randomというランダム文字列を生成するメソッドが存在します。それを使うと簡単にランダムな文字列を作ることができます。 ヘルパー関数はグローバル定義で、どこからでも利用可能です。 # 32文字のランダムな文字列を作成. $access_token = str_random(32); 引数に作成したい文字数を指定して関数を実行することで、ランダムな文字列を作成できます。 最後に 最近は複数の案件でLa

    [PHP] Laravelでランダムな文字列を生成する - YoheiM .NET
    yoheiM
    yoheiM 2018/05/21
    [Laravel] ランダムな文字列を生成する
  • [PHP] Macで、Laravel5.6の、起動、MySQL接続設定まで行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 Mac環境で、Laravel5.6をセットアップする機会があったので、ブログにも書きたいと思います。 目次 公式ドキュメント インストールに関する公式ドキュメントはこちらです。適宜ご参照ください。 https://laravel.com/docs MacPHP7.2をインストール PHP7.2は、Homebrewで簡単にインストールできます。 $ brew install php72 インストール後に、以下のコマンドでバージョン確認できればOKです。 $ php -v PHP 7.2.5 Composerのインストール もしまだ導入していない場合には、以下のサイトを参考にインストールします。 https://getcomposer.org/doc/00-intro.md laravelコマンドのインストール composerでも作成可能ですが、la

    [PHP] Macで、Laravel5.6の、起動、MySQL接続設定まで行う - YoheiM .NET
    yoheiM
    yoheiM 2018/05/14
    LaravelをMacにインストール
  • [PHP] Laravel5.6で、サクッとRESTful APIを作成する - YoheiM .NET

    こんにちは、@yoheiMuneです。 PHPのWebフレームワークの1つであるLaravelでは、簡単にRESTfulAPIを作ることができます。今日はその作り方をブログに書きたいと思います。 目次 対象バージョン 今回はLaravelのv5.6以上を対象としています。以前のバージョンでもだいたい同じですが、一部コマンドが違うところもあるので、適宜読替えをお願いします。 RESTfulAPIとは データベースに格納している1つ1つのモデルに対して、CRUD(Create / Read / Update / Delete)を提供する設計思想です。例えばユーザーテーブル(User)があったとして、それに対して以下のようなAPIを作成します。 # 一覧取得 GET /api/users # IDを指定して1つ取得 GET /api/users/{id} # 新規作成 POST /api/use

    [PHP] Laravel5.6で、サクッとRESTful APIを作成する - YoheiM .NET
    yoheiM
    yoheiM 2018/05/11
    [Laravel] RESTfulAPIの作り方
  • [PHP] PHPBrewで複数のバージョンを使い分ける - YoheiM .NET

    こんにちは、@yoheiMuneです。 PHPの開発ではプロジェクトによってPHPのバージョンが違うことがほとんど。ローカルでPHPのバージョンを気軽に切り替えられると開発が捗ります。今日はPHPBrewというツールで、それを実現する方法をブログに書きたいと思います。 目次 PHPのバージョン切り替えツールは乱立状態 今回紹介するPHPBrew以外にもいくつも同様のツールが存在していて、乱立しているようです(参考→phpenvやphpbrewの雑な比較)。参考先の方のオススメとは別ですが、色々と試した結果、PHPBrewが一番使いやすい印象でした。 PHPBrewの使えるOS PHPBrewは以下の環境で利用可能です。Windowsはサポート対象外です。 Mac OS 10.5+ Ubuntu Debian REHL / CentOS PHPBrewのインストール 「依存ライブラリのインス

    [PHP] PHPBrewで複数のバージョンを使い分ける - YoheiM .NET
    yoheiM
    yoheiM 2018/03/12
    PHPBrewでバージョン切り替え
  • [PHP] ログ出力等する際に、日付文字列をミリ秒まで表示する方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 日はPHPネタで、ログファイルなどに出力する場合に時間をミリ秒まで出したい!、そんな時に役立つ実装方法をブログに書きたいと思います。 何が問題なのか PHPではdate関数を使うことで、現在時刻を取得することができ、文字列としても出力することができます。 date_default_timezone_set('Asia/Tokyo'); echo date("Y-m-d H:i:s"); # => 2016-04-12 09:45:31 多くの場合はこれで十分なのですが、ミリ秒まで必要な場合に、この方法では出力することができません。 # 日付フォーマットとしてマイクロ秒を表す「u」があるが、必ずゼロ echo date("Y-m-d H:i:s.u"); # => 2016-04-12 09:45:31.000000 # Datetimeでもダメです

    [PHP] ログ出力等する際に、日付文字列をミリ秒まで表示する方法 - YoheiM .NET
    yoheiM
    yoheiM 2016/04/13
    日付文字列にミリ秒まで入れる
  • 1