Xzxzyzyz.com
[Laravel] 5.7.5がリリースされました
#Laravel

[Laravel] 5.7.5がリリースされました

laravel/frameworkのバージョン5.7.5がリリースされました。更新された機能について確認していきます。 Added 1. でViewへ渡すデータにコールバックが渡せるようになりました (7dc3d8d35ad8bcd3b18334a44320e3162b9f6dc1) 以下のメソッドが追加され、Viewデータをビルドするときにデータがマージされます。 <br> 詳しい変更については以下を確認してください。 Release v5.7.5 · laravel/framework · GitHub

続きを読む
[Laravel] Email Verification(メールアドレスの確認機能)の使い方とカスタマイズについて
#Laravel

[Laravel] Email Verification(メールアドレスの確認機能)の使い方とカスタマイズについて

先日のLaravelのリリースで新しく追加されたEmail Verificationがとても便利ですので紹介します。 <br> 今までのLaravelでは、フレームワーク内に認証機能が実装されており、これを有効にすることで簡単にログイン機能等を利用することができました。 デフォルトの挙動では、ユーザーの新規作成(ページ)後にそのままログインが可能になるというフローでした。 認証付きのサービス等でよく見る、ユーザーの新規作成時に登録されたメールアドレスが正確かどうかを確認するフロー(本登録メール等)をはさみたい場合には、自前で実装するかサードパーティーのパッケージを利用する必要がありました。(josiasmontag/laravel-email-verificationl等) メールアドレスが正確かどうかの確認は、サービス上でユーザーとのやりとりが発生する場合においてとても重要です。 この機能がついにLaravelで実装されました。 Email Verificationの利用方法 ドキュメントに書いてある通り、使い方はとても簡単です。 モデルへインターフェイスと、トレイトを追加します。 認証ルートの作成は今まで通りコマンドを実行し、ファイルに認証のためのルートが追加されます。 追加されたに引数を渡すように変更します。 Tips メソッド(ファサードでクラスのメソッドが呼ばれる)の処理が以下のように変更されてメールアドレス確認用のルーティングが追加されています。 後は認証が確認なルートのにを指定するだけです。(すべての認証ルートに適用する場合にはミドルウェアをミドルウェアに置き換えるだけです) Laravel 5.6からアップデートした際には以下の作業が必要です 新しくLaravelをインストールした場合には不要ですが、それ以前のバージョンからアップデートを行った場合には下記作業を行ってください。 1. VerificationControllerをへ配置 2. のへを追加 3. にイベントを追加 認証周りのイベントについてはこちらで説明しています。 4 にの追加 <br> 設定ができたら、へアクセスして新規登録を行いましょう。 登録したメールアドレスへ認証メールが届きます。 laravel-email-verification01 確認メールのカスタマイズ 確認メールの送信はクラスで行います。 標準では英語の文面ですが、メールの構文にはクラスが使用されているため、オリジナルの言語ファイルを設置することにより文面のカスタマイズが行えます。 以下のファイルをとして保存してください。 のをに指定している場合に、設定した日本語でメールが送られてきます。 laravel-email-verification02 Tips メールの送信そのものをオリジナルにカスタマイズする場合には、メソッドで送信処理をコールバックで渡すことができます。 等でオリジナルのコールバックを指定しましょう。

続きを読む
[Laravel Nova] オリジナルのテーマを設定する方法
#Laravel Nova

[Laravel Nova] オリジナルのテーマを設定する方法

Laravel Novaにはデフォルトでとても美しいデザインが採用されていますが、このデザインをカスタマイズする方法をご紹介します。 Laravel Novaのインストールについてはこちらをご覧ください。 NovaServiceProviderへのスタイルシート登録 Laravel NovaのベースはTailwind CSSで作られています。 CSSの定義やオーバーライドをしてスタイルの上書きを行います。 <br> クラスのメソッドは、オリジナルのスタイルシートをテンプレート内に出力できる関数です。 のメソッドを以下のように編集します。 へ以下の内容でファイルを追加します。 テンプレート内にが追記されてデザインが変更されます。 laravel-nova-theme-generator02 Nova Theme Generatorを利用したデザインの作成 Nova Theme Generatorというジェネレーターツールが公開されています。 Laravel Novaで作られたサイト上でデザインのカスタマイズやテーマの作成が行えます。 今回は、作成済みのテーマを使ってデザインの変更を行ってみます。 <br> こちらからテーマのダウンロードを行います。 zipファイルを解凍後、カレントディレクトリにディレクトリとして配置します。 のとにテーマの内容を追記します。 追加後にで読み込みます。 によってサービスプロバイダが読み込まれ、デザインが反映されます。 laravel-nova-theme-generator03 パッケージを利用したデザインの変更 サードパーティーのパッケージですが、でインストールできるデザインもリリースされています。 Nova Stripe Themeを使用して風のデザインを適用させます。 によってサービスプロバイダが読み込まれ、デザインが反映されます。 laravel-nova-theme-generator04

続きを読む
[Laravel] 5.7がリリースされました
#Laravel

[Laravel] 5.7がリリースされました

laravel/frameworkのバージョン5.7がリリースされました。更新された機能について確認していきます。 Laravel 5.7では以下の用な更新が行われています。 Laravel Novaへの対応 ユーザーのメールアドレスの検証機能の追加 GateやPolicyといった認証に関わる部分でのゲストユーザをサポートする機能の追加 Artisanコマンドのテスト方法の改善 Symfonyを使用したDump Serverの統合 Notificationのローカライズ対応 その他のバグの修正、およびユーザビリティの向上 メールアドレスの検証 Laravel 5.7では、フレームワークに含まれている認証用テンプレートにオプションのが追加されました。 この機能に対応するために、フレームワークに含まれているデフォルトのユーザーテーブルのmigrationにタイムスタンプ列が追加されています。 新しく登録したユーザーにを促すには、モデルにインターフェイスを設定する必要があります。 モデルにインターフェイスが設定されると、新しく登録されたユーザーには、署名付きの確認リンクが記載されたメールが送信されます。 このリンクがクリックされると、Laravelは検証時間を自動的にデータベースに記録します。 ミドルウェアがデフォルトのアプリケーションのHTTPカーネルに追加されました。このミドルウェアは、検証されたユーザーのみを許可することができます。 詳細についてはこちらをご確認ください ゲストユーザーのGate/Policy Laravelの以前のバージョンでは、未認証GateとPolicyはアプリケーションが自動的にを返しました。ただしを宣言するか、のデフォルト値を指定することで、ゲストが認可を通過できるようになりました。 Symfony Dump Server Laravel 5.7は、 beyondcode/laravel-dump-serveのパッケージを使用してSymfonyのDump Serverと統合されました。利用するには、Artisanコマンドのを実行します。 Dump Serverが起動すると、ダンプするすべての呼び出しは、ブラウザーではなくコンソール・ウィンドウに表示され、HTTP応答出力をマ待つこと無く値を検査することができます。 Notificationのローカリゼーション Laravelでは、現在の言語以外のロケールで通知を送信できるようになり、通知がキューに送る場合でもこのロケールを指定可能です。 これを実現するために、クラスは、目的の言語を設定するためのメソッドが追加されました。通知がフォーマットされると、アプリケーションはこのロケールに変更され、フォーマットが完了すると以前のロケールに戻ります。 複数の通知エントリのローカライズは、ファサードを介して行うこともできます。 Artisanコマンドのテスト Laravel 5.7では、メソッドを使用してArtisanコマンドのユーザー入力を簡単にモック化できます。 また、およびメソッドを使用して、Artisanコマンドによって出力されると予想される終了コードおよびテキストを指定することもできます。 たとえば、次のArtisanコマンドを例にします。 、、およびメソッドを使用する次のテストでこのコマンドをテストできます。 URL Generatorがコールバックに対応しました LaravelのURLジェネレータは、文字列を受け入れるだけでなく、コントローラアクションのURLを生成する際に、な構文を受け入れるようになりました。 Paginator Links Laravel 5.7では、ページネーションの両側に表示されるリンクの数を制御できます。 デフォルトでは、プライマリページリンクの各サイドに3つのリンクが表示されます。 ただし、メソッドを使用してこの数を制御できます。 Filesystem Read / Write Streams LaravelのFlysystemで、メソッドとメソッドが利用可能になりました。 <br> 詳しい内容については以下を確認してください。 Release Notes - Laravel - The PHP Framework For Web Artisans

続きを読む
[Laravel Nova] Laravel Novaが発表されました
#Laravel Nova

[Laravel Nova] Laravel Novaが発表されました

Laracon 2018にて、Laravel Teamによる新しいサービスである Laravel Nova が発表されました。 Laravel NovaはLaravel Teamによる Laravelのためのデザインの高い管理システム と発表されました。 beautifully designed administration panel for Laravel <br> Laravel Novaはのパッケージとして配布され、すでに作成済みのLaravelプロジェクトにもインストールが可能です。 また、容易に拡張が行えるように準備されており、簡単な設定を行うだけでこれらのリソースを即座に利用できます。 フロントエンドには、Vue.jsやVue Router、およびTailwindを使用したSPAとして構築されています。優れたデザイン性に加え、高度なカスタマイズも可能です。 {{< post-img src="/img/post/2018/07/laravel-nova-introduction_01.png" >}} 発表の様子は Laracon 2018 - Taylor Otwell - Keynote にてご覧になれます。 <br> 気になる価格ですが、SOLO版が 、PRO版がと発表されています。 2018年8月にリリース予定とのことですが、Laravel Novaで事前登録することでアーリーアクセスが可能とのこと。

続きを読む
[Laravel Forge] Mac用のアプリF-Barが50%offのキャンペーン
#Laravel Forge

[Laravel Forge] Mac用のアプリF-Barが50%offのキャンペーン

Laravel ForgeのMac用のメニューバーアプリのF-Barが期間限定で50%offののセール中です。 ※ 有料アプリですがトライアルで無料でも利用可能です <br> F-BarはLaravel Forgeで作成したサーバーに対して、メニューバーから様々な操作が可能です。 SSHでの接続 サーバーの再起動 MySQLの再起動 Nginxの再起動 Postgresの再起動 SSHキーのアップロード Deploy .envファイルの編集 Nginx Configurationの編集 HTTPでのサーバー死活監視 各種操作を行なった際の完了・エラー通知 etc... <br> マルチアカウントにも対応しており、iOS用のアプリもあります。 こちらは出先での緊急対応等にとても便利です。 F-Bar for iOS – F-Bar <br> Laravel Novaのリリース記念キャンペーンの用なので期限は定かではありませんが、既にLaravel Forgeを利用している方は是非使ってみてください。

続きを読む
[Larevel] Seederをより使いやすくする
#Laravel

[Larevel] Seederをより使いやすくする

LaravelではSeederを利用したデータの登録が用意されており、これをより使いやすくインタラクティブにする方法がとても良かったので紹介します。 ユーザーには3つの権限、、のいずれかに属するものとし、これをSeeder実行時に指定するサンプルです。 migrationの編集 Laravelインストール時に用意されているを編集して利用します。 下記のように権限に関するカラムを追加してください。 編集後にコマンドでマイグレーションを実行しておきましょう。 Userモデルの編集 作成したカラムに関する処理を追加します。 Seederの作成 今回の肝の部分ですが、実行するを作成しておきます。 作成したを下記のように編集します。 コマンドクラスのメソッドを利用して、メソッドへ渡す引数の指定を可変に出来ます。 コマンドを実行して動作を確認してみましょう。 コンソール上に権限を指定するインターフェイスが表示されました。各種数字を入力することで、簡単に権限の付与が可能になります。 <br> Caleb Porzioさんのツイート: "🌱💧 Pro Tip: make your database seeders more user-friendly and interactive with Laravel's command interface 💧🌱 ... endless possibilities… https://t.co/MYD6EGmYAk"

続きを読む
[Laravel] 5.6.30がリリースされました
#Laravel

[Laravel] 5.6.30がリリースされました

laravel/frameworkのバージョン5.6.29がリリースされました。このリリースはセキュリティーに関する内容で、すべてのユーザーへ即時アップグレードするよう推奨されています。 要約すると、内のを第三者が知っている場合に、この対策を行う必要があります。 アップデートの内容について この脆弱性は、アプリケーションの暗号化キー(環境変数)に悪意のあるユーザーがアクセスした場合にのみ悪用される可能性があります。 通常、アプリケーションのユーザーがこの値にアクセスすることはできません。 ただし、暗号化キーにアクセスした第三者は、キーを使用してアプリケーションを攻撃することができます。 暗号化キーが悪意のあるユーザーの手に入ると思われる理由がある場合は、そのキーを新しい値に変更する必要があります。 Cookie Serialization Laravel 5.6.30は、クッキー値のシリアル化/シリアル化解除をすべて無効にします。 すべてのLaravel Cookieは暗号化されて署名されているため、通常、クライアントの改ざんから安全とみなされます。 しかし、アプリケーションの暗号鍵が悪意のある人の手に入ると、その当事者は暗号鍵を使用してクッキー値を作成し、脆弱性を悪用してアプリケーション内の任意のクラスメソッドを呼び出すなどのPHPオブジェクトの直列化/直列化解除を継承することができます。 すべてのCookie値でシリアル化を無効にすると、アプリケーションのすべてのセッションが無効になり、ユーザーはアプリケーションに再度ログインする必要があります。 さらに、アプリケーションが設定している他の暗号化されたCookieには無効な値が含まれます。 このため、アプリケーションに追加のロジックを追加して、カスタムCookie値が予期した期待値リストと一致することを検証することができます。さもなければ、あなたはそれらを捨てるべきです。 Configuring Cookie Serialization この脆弱性はアプリケーションの暗号化キーにアクセスすることなく悪用することはできません。 暗号化されたCookieのシリアル化を再び有効にして、アプリケーションをこれらの変更と互換性を持たせる方法を提供しました。 Cookieのシリアル化を有効または無効にするには、ミドルウェアのプロパティを変更することができます。 尚、すでに第三者がを知っている場合は、プロパティを変更する前にの再設定が必要となります。 Upgrade Guide - Laravel - The PHP Framework For Web Artisans

続きを読む
[Laravel Forge] Laravel Forgeとは?
#Laravel Forge

[Laravel Forge] Laravel Forgeとは?

PHPを利用するアプリケーションのサーバーのプロビジョニングや管理を行うLaravel Forgeについて。 Laravel ForgeはLaravelを利用する際のツールの一つであり、Laravelでの開発時に行わなければならないサーバー周りの設定を請け負い、開発者がよりシステムの開発に集中できることを目的としたサービスです。 Digital Ocean、Linode、AWS、Vultr、オリジナルのVPSなど様々な環境へのサーバープロビジョニングやデプロイを行えます。 また各種クラウドサービスとの認証後にはユーザー側で直接操作する必要はなく、専用のAPIを利用することでLaravel Forge上ですべての操作を行うことができます。 サーバーに必要なドメイン設定、データベースの構築、SSLの設定、Firewallなど様々な設定がLaravel Forge上で簡単に行えます。 <br> 便利な機能のなかでも頻繁に使うであろう機能を以下にピックアップしました。 新しいサーバーの作成とプロビジョニング SSHキーの設定 GithubやBitbucketなどのリポジトリの連携 コードのデプロイ オリジナルの設定ファイルを作成し、複数のサーバーへの同時実行 cronジョブのスケジューリング設定 ファイアウォールとセキュリティの設定 データベースの追加や、接続ユーザーの設定 ロードバランサによるアクセスの振り分け Supervisorを利用したデーモンの設定 Horizonの利用 (もちろんRedisもインストール済みです) Blackfire.ioを利用したアプリケーションのプロファイリング Papertrailを利用したアプリケーションログの収集 php.ini、.env、nginx.conf等の設定ファイルの変更 etc ... これらを含めたとても便利な機能がLaravel Forgeには揃っています。 <br> Laravel Forgeのことをもっと知りたい場合はLaracastsにて動画が公開されていますので是非みてみましょう。 全13話で1時間程度で完了します。 <br> 実際に使用するにあたってプランは3つ用意されており、いずれも有料ですが5日間の無料期間があるので試してみるには十分です。 Hobby Plan (12$ / Month) Growth Plan ($19 / Month) Business Plan ($39 / Month) <br> 私がLaravel Forgeを使い始めて約1年程ですが、今後は実際の利用方法など書いていこうと思います。

続きを読む
[Laravel] 5.6.29がリリースされました
#Laravel

[Laravel] 5.6.29がリリースされました

laravel/frameworkのバージョン5.6.29がリリースされました。更新された機能について確認していきます。 Added 1. Observerのstubにとが追加されました (#40ba2ee) 2. が追加されました (#24924) ファイルのアップロードを行う際に、ファイルの内容の確認が必要な場合などに利用します。 3. FactoryBuilderで名前付きで定義したFactoryを呼び出す際のエイリアスが追加されました (#24937) メソッドが追加されてエイリアスで呼べるようになりました。 <br> 詳しい変更については以下を確認してください。 Release v5.6.29 · laravel/framework · GitHub

続きを読む