タグ

ブックマーク / blog.fagai.net (32)

  • Laravel 5.1がリリースされたので、ざっと見てみました。

    Laravel 5.1がリリースされたので、変わった所等をざっと見ました。 まだまだ追いきれてない箇所もあるので、あとで追加するかもしれないです。 基的な仕様PHP5.5.9以上が必須に暗号化にopensslが使われるようにPSR-2に完全準拠Long Term Support(3年間の長期サポート)すでに、Laracastsに動画が上がってました。見ると良いと思います。 What’s New in Laravel 5.1 追加・変更部分(追えた部分のみ)app/Commandsが無くなり、app/Jobsに変更。app/Handlersが無くなり、app/Listenersに変更。::class構文を使うようになった。完全修飾名を文字で返す際には使われるように。filesystemの標準サポートにftpが追加Bloadcasting Eventが追加(Illuminate\Broadc

    Laravel 5.1がリリースされたので、ざっと見てみました。
  • LaravelのIoCコンテナ、サービスコンテナに関してまとめ-その1

    こんにちは。ファガイです。 日は、LaravelのIoCコンテナ(サービスコンテナ)に関してまとめます。まとめてると言いつつも、今回は殆どバインディングの話だけです。 使用技術Laravel5概要Laravel5で名前が変わったIoCコンテナですが、名前が変わってもやってる内容は基的に変わりません。(ここでは、認知度が高いIoCコンテナに統一します。) 主に、Laravelのコアの存在なので、少しでも理解しておくと良いです。 IoCコンテナが主にやるのは依存の解決です。これはオブジェクト指向開発をやる上で非常に重要ですし、IoCコンテナを使うことで色々な処理がシンプルになります。 今回、bindメソッドの中身を掘り下げて紹介しています。想像以上に時間がかかりました。 LaravelのApplicationクラス、Containerクラスこの2つのクラスは、Laravelのコアクラスです

    LaravelのIoCコンテナ、サービスコンテナに関してまとめ-その1
  • Laravelを使用する上でおススメのパッケージまとめ

    こんにちは。日はLaravel4を使用する上で、活躍するだろうライブラリを紹介します。 先日、Laravelを最近始めた人がパッケージの存在に気づいてなかったので、これは便利だろうというものをリストアップしました。初心者の方は是非入れてみることをおすすめします。 特におススメのパッケージLaravel 4 Generators (way/generators)Laravel4に標準で搭載されているコード自動生成のためのコマンドを拡張するパッケージです。 入れないのは損ですし、知らなかったっていう人は入れてみることをおすすめします。非常に活発なので、今後もアップデートが期待できます。 Laravel IDE Helper Generator (barryvdh/laravel-ide-helper)こちらも有名。Laravelは動的な実装がされている関係でIDEの補完が効かない場合は多々あ

    Laravelを使用する上でおススメのパッケージまとめ
  • Laravel4を使用した認証チュートリアル(Sentry)

    こんにちは。ファガイです。 日はlaravel4を使用した認証のチュートリアルです。 初めてそれっぽいチュートリアルを書くかもしれません。。。 確認環境確認環境は以下となります。 Apache2PHP 5.4MariaDBLaravel4.1Laravelの導入まずは、Laravelアプリケーションの導入をします。laravel.pharインストーラーでの作成が便利です。 laravel new auth_samplestorageをApacheからアクセスできるように権限の変更をします cd auth_sample/app chown -R apache:apache storageapp.phpのtimezone、locale、keyを変更します。 <?php return array( ... 'timezone' => 'Asia/Tokyo', ... 'locale' =>

    Laravel4を使用した認証チュートリアル(Sentry)
  • Laravelでの処理の分離について調べてみた1

    こんにちは。ファガイです。日はLaravelでの処理の分割に付いて考えてみました。 twitterにて困っていた所、いくつかの案を教えていただき、調べた物を紹介します。 環境に関して今回は、以下の環境で動作を確認しています。 CentOS 6.5Apache 2.xPHP 5.4Laravel 4.1MariaDB 10.0.7classmapでの分離まずは、基的なロジック分離の方法です。 appディレクトリに対し、libディレクトリを作成します。 cd app mkdir libcomposer.jsonのautoload->classmapに以下を追加します。 "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/dat

    Laravelでの処理の分離について調べてみた1
  • FuelPHPでモジュールに存在するタスクを実行する

    こんばんは。ファガイです。 日は、FuelPHPの機能であるモジュールの中のタスクを実行する方法について紹介します。 環境今回実行した環境は以下となります。 CentOSApache 2.xPHP 5.4くらいFuelPHP 1.7.1実行方法公式サイトの日語訳を見ると以下のようなコマンドを打つと出来ると書かれていました。 php oil run modulename::methodname 打ってみましたが、出来ませんでした。はい。 解決策ソースを読みました!読みたい方はpackages/oil/refine.phpを読んでみましょう。 php oil refine modulename::taskname:methodname 上記で出来るみたい。 なお、module内でphpを作った時に気をつける点が名前空間はFuel\Tasksに設定するということです。 私はここを勘違いしてい

    FuelPHPでモジュールに存在するタスクを実行する
  • Laravelのworkbenchで詰まった話。

    こんにちは。ファガイです。 先日からLaravel4のworkbenchに関して知識を付けてました。 しかしながら、workbenchを作ってから動かそうとすると動かなかった。 エラーはServiceProviderが無いとのこと。 ServiceProviderはちゃんと用意していたし、名前空間も間違ってなかった。 最初、VendorNameとかベンダー名付けたからかとか疑ったけど、結局それじゃなかった。 実は、workbenchを作成している際に以下のエラーが表示されていた。 [root@fagailocal laravel]# php artisan workbench sample/package --resources Package workbench created! sh: composer: コマンドが見つかりません ??? 一応workbenchは作られてるっぽいから良

    Laravelのworkbenchで詰まった話。
  • Laravel IDE Helper Generatorが超便利だった件

    こんにちは。ファガイです。 日、Laravelをやろうと思って始めたら、PHPStormでコード補完が効かなくて困った。 どうやら、Laravel IDE Helper Generatorというものがあるらしい。超便利だった。 Laravel IDE Helper Generator 導入方法1.composer.jsonのrequireの中に以下を記述します。 "require": { "laravel/framework": "4.0.*", "barryvdh/laravel-ide-helper": "1.*" }, 2.config/app.phpのProviderプロパティの値に以下を追加します。 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', 3.一旦、composerをupdate 4.問題なく生成できたら、co

    Laravel IDE Helper Generatorが超便利だった件
  • LaravelのバリデーションがFuelPHPよりも良かった件

    そもそもLaravelとはLaravelPHPフレームワークです。多分、現状のPHPフレームワークの中でもモジュールが疎結合に近く、非常に使い勝手が良いフレームワークとなっています。 一応、導入に関しては別の記事で記述しております。 Laravel4のインストールをやってみた 一気に題に入ります。 Laravelのバリデーションは、FuelPHPのバリデーションよりも、簡略的に、かつ高機能に動作します。 基的な部分は、kore1serverの方が翻訳されたドキュメント?をご確認下さい。 http://laravel4.kore1server.com/docs/validation Laravelのバリデーションはココが良い!ここからはLaravelのバリデーションの良い所を書きつつ、FuelPHPと比較します。 書き方がとても簡易的で分かりやすい。書き方に関しては複数あるのですが、一

    LaravelのバリデーションがFuelPHPよりも良かった件
  • Laravel Blade Template Engineを使用する上での落とし穴

    こんにちは。ファガイです。 日は、Laravelに標準搭載されてあるブレードテンプレートエンジンの落とし穴?に引っかかったので軽くまとめます。 これが起こる場合はこのような書き方をしていた時です。 FuelPHPを使ってた方はこのような書き方をしようとするでしょう。 ブレード側 <html> <head></head> <body> @include('parts.header') {{$content}} @include('parts.footer') </body> </html> メソッド側 protected $layout = 'layout.master'; public function show() { $this->layout->content = View::make('home.index'); } このような形です。よくあると思います。 この場合の時に、テンプ

    Laravel Blade Template Engineを使用する上での落とし穴
  • LaravelのEloquent ORMは複合主キーに対応していなかった

    注意:Laravel4の話です 2013-09-19追記 こちらの記事ですが、以下の記事の内容を行うと、insert等ができなくなるようになってしまいました・・・。 どうやら最後のIDが取得出来ないからこうなってしまうようです。 互換性などの点からもIDは付けるようにしましょう。複合ユニークキーとインデックスをつければそれなりにちゃんと速くなるはずこんにちは。ファガイです。 先日から個人的にサイトを制作していたのですが、衝撃の事実がわかりまして・・・ Eloquent ORMは複合主キーに対応していない!うん、複合主キーに対応していない。 皆見たらわかると思うんだ、Illuminate\Database\Eloquent\Builderのfindメソッドを見てみよう。 public function find($id, $columns = array('*')) { $this->que

    LaravelのEloquent ORMは複合主キーに対応していなかった
  • Laravel4のインストールをやってみた

    にて用意をしておきます。 laravelをインストールする予定の場所で curl -sS https://getcomposer.org/installer | php です。自分で出来る人は自分で用意した方がいいです。 そしてインストール php composer.phar create-project laravel/laravel フォルダ名 一応途中までcloneが出来たが以下のエラーが発生。 [UnexpectedValueException] 'laravel/vendor/filp/whoops/7b87ecda71099a7e6649be8681cc2dff.6' is not a zip archive. 調べていくと24時間以内にforumに投稿された記事しか出てこない。 これは思いっきり始めるタイミングを間違えたな、と。 とりあえず、zip.soが入っているのか確認。

    Laravel4のインストールをやってみた
  • FuelPHPのOrmで少し詰まった

    こんにちは。ファガイです。 日はORMで詰まった所を書きます。軽く書くので、フォーマットはあまりきにしてません。 Ormのfindの挙動がおかしい例として、Model_Site_MasterというModelがあるとします。 'site_id', 'user_id', 'category_id', 'name', 'url', 'description', 上記のようなカラムがあるとします。primary keyはsite_idとuser_idです。 その際にfuelphpのmodel app\model\site\master.phpにはprimary keyを設定していました。 protected $_primary_key = array('site_id', 'user_id'); そして、このModel_Site_Masterは$site_idのみの指定での更新があるとします。

    FuelPHPのOrmで少し詰まった
  • FuelPHPのUploadクラスを詳しくまとめてみる。

    今回はFulephpのUploadクラスについてまとめています。多少のPHPの知識を知っているという認識で詳しく書こうと思います。 概要FuelPHPのUploadクラスは、ファイルのアップロードを簡易的にしてくれるクラスです。しかしながら多少クセがあり、感覚がつかみにくいところがあります。(入力部分がブラックボックスすぎて) 基ソース■view部(わざとPHPは使用しない形で書いてます) <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="upload_file"> <input type="submit" name="submit" value="送信"> </form> ■sample.php class Controller_Sample extends Con

    FuelPHPのUploadクラスを詳しくまとめてみる。
  • FuelPHPのOrm\Model_Softを使おう

    使用方法Model_Softクラスは\Orm\Modelを継承しているため、Orm\Modelと同等に扱うことが可能です。 ただ、findやqueryで取得してくる値はdeleted_fieldがnullのものになります。 find_deleted,deleted – 論理削除のレコードを取得する論理削除されたレコードを取得するにはfind_deletedまたはdeletedを使用します。find_deletedはdeletedのエイリアスのようなものなのでdeletedを使えばよいでしょう。 restore,undelete – 論理削除のレコードを復元する論理削除のレコードを復元するには、restore()かundelete()を呼び出すだけです。undelete()はrestore()のエイリアスです。 Example// 削除済みのデータを取得 $deleted = Model

    FuelPHPのOrm\Model_Softを使おう
  • FuelPHPのormモデルでの追加

    こんばんは。ファガイです。 日は、ちょっとした話だけ。 例えば、沢山のフィールドを編集する時。 保存しますよね。 例えばプロフィールテーブル。(簡易化してます。) $profile = Model_Profile::find(1); $profile_form = Fieldset::forge('profile_form'); $profile_form->add_model($profile); if($profile_form->validation()->run()){ $fields = $profile_form->validated(); $profile->name = $fields['name']; $profile->age = $fields['age']; ・・・ $profile->save(); } まあ、こんな感じにしますよね。 どうやら、setメソッドが

    FuelPHPのormモデルでの追加
  • FuelPHPのassetパスを変更する、追加する方法。

    こんばんは。ファガイです。今日は、FuelPHPのassetクラスに関してです。 例えば、 public/ assets/ images/ sample.png と、このようにassets内のimagesフォルダ内を参照するとします。 この状態で、Asset::img(“sample.png”);を行うとsample.pngは読み込めません。普通ですね。 通常、Asset::imgはデフォルトでasset/img内を確認するからです。 それで、どうするかですが。3つ方法があります。 フルパスで突っ込む方法。Asset::img('http://..../assets/images/sample.png'); これだと行けます。 Asset::add_pathでパスを指定する方法。Asset::add_path('assets/images/'); Asset::img('sample.pn

    FuelPHPのassetパスを変更する、追加する方法。
  • FuelPHPでSentry。その2

    今回はユーザの作成方法を書いていきます。大体は公式のgithubにあるマニュアルを見れば大体は把握できるのでまぁまとめなくても・・・って少し思ってたりする。 一応、こちらの記事と前回作った記事はFuelPHP勉強会 東京 vol.3である程度まとめた形で発表予定です。5分だから・・・ざっくりして、短くなりそう。 ユーザを作成するException一覧・Cartalyst\Sentry\Users\LoginRequiredException ログインフィールド(通常はEmail)が抜けている場合に投げられるExcepion Sentryのconfig/sentry.phpの’login_attribute’で対象カラムを変更可能 ・Cartalyst\Sentry\Users\PasswordRequiredException パスワードフィールドが抜けている場合に投げられるExcepti

    FuelPHPでSentry。その2
  • FuelPHPでSentryを使おう

    こんばんは。ファガイです。個人的にSimpleAuthが好きになれなかったのでSentryという認証システムを使うことにしましたよっと。 Sentryは複数のフレームワークに対応する認証システムであり、composerでのインストールが可能。FuelPHP1.6からはcomposerに標準対応するということで、使ってみようかなと。 2015-04-22追記 ※最新版は2.1系です。この記事は2.0系向けの記事となります。 最新の2.1系ではテーブル情報が変わっている模様なので、テーブルの作成はschemaフォルダのmysql.sqlを利用してください。 Sentryの利点複数フレームワークに対応している(Laravel,FuelPHP,CodeIgniter等のフレームワークに対応)フレームワーク無しでも動く何となく良さそうな気がするSentryは当初、FuelPHP用に作られていたのか不

    FuelPHPでSentryを使おう
  • 急にFuelPHPが動かなくなった話。

    あけましておめでとうございます。ファガイです。 今年もよろしくお願いします。 日は、ちょっとしたミスで私のサイト「fagai.net」が動かなくなった話を。 先日まで、動いていたのですが、今日fagai.netを確認してみると、エラー。 Fatal error: Uncaught exception 'Fuel\Core\PhpErrorException' with message 'mkdir():略 皆さん気づいてるかもですが、権限の関係でした。 2013年になったため、logsフォルダ内に2013年のフォルダを作ろうとFuelPHPが動いたわけですが、権限が無かったためフォルダが作れなかったわけです。 とりあえず、logsフォルダの権限を下げたらしっかり動いてくれました。 このような軽いことで動かなくなる可能性があることを実感しました。環境構築や、コーディングには気をつけなきゃい

    急にFuelPHPが動かなくなった話。