サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.fagai.net
この記事は、アイスタイル Advent Calendar 2016の14日目の記事です。 今年3月入社のfagaiが担当します。よろしくお願いします。 (Laravelアドベントカレンダーにも似たような内容がある気がしなくも無いのですが気にしない。) はじめに 弊社ではWebサービスとして複数のサービスを提供しているのですが、最近は主にLaravelを利用しています。 Laravelというフレームワークは今までの主流であったCakePHP2などと異なる特徴を持っており、初めて扱う人は少し戸惑うかもしれません。 この記事は、これからLaravelを利用しようとしている方や、現在Laravelを利用しているけどソースまでは追いきれない、日本語マニュアルに書いてあることで精一杯だという人向けの記事です。 一応、Laravel以外でもよい知見になれるような情報を載せたつもりです。 前提条件 Lar
こんにちはー。ファガイです。 今日は知見的なものの共有をしようかなと思います。 この記事を見てるということはLaravelに興味があったり、実際に使っている方だと思いますがLaravelのコアで利用されているサービスコンテナ(DIコンテナ)がどのように作用しているのかを把握されてない方もいると思います。 そのあたりをこの記事では書いていこうと思います。(そう言いつつも、なんか色々網羅した気がします・・・) はじめに この記事、結構長いです。解説には必要不可欠な情報ばかり含まれてます。 それを理解して読んでいただければと思います。。。 対象者 Laravelを少し触ってきた人 DIコンテナがなんとなく分かる人 LaravelのDIの仕組みが魔法だと思ってる人 環境 Laravel5.3を想定。ただ、Laravel5.1でもほとんど同じソースなので気にせずに。 まずDIって何よ? Depend
開発環境 Laravel5.1 Redis 設定 設定ファイルは、config/queue.phpとなっています。 なお、デフォルトで対応しているドライバーは、Sync(同期),Database,Beanstalkd,IronMQ,Amazon SQS,Redisとなっています。 今回はRedisキューを利用してみます。 一旦仮なので、defaultの部分をredisに変えちゃいましょう。envファイルに書いてもいいですよ。 'default' => env('QUEUE_DRIVER', 'redis'), なお、redisは同じサーバー上で動かしてるので、redisサーバーさえ動かしておけばOKです。 redisの設定はdatabase.phpの分と、queue.phpがあります。queue.phpのプロパティのqueueはdatabase.phpの方のキー値ですね。 一応補足 red
使用技術 Laravel5 そもそもViewComposerとは? ViewComposerはViewに対する表示準備を行うための機能です。 これを利用することで、Controllerで共通で取得する必要がある要素等を分離して対応することが出来ます。 (つまり、コントローラーの肥大化を防ぐ) 導入 Laravel5にはViewComposerの機能が含まれていますが、ファイルは用意されていません。 理由としては、書こうと思えばどこでも書けるからでしょう。 今回は、公式サイトに載ってあるComposerServiceProviderを利用します。 app/Providers ディレクトリに ComposerServiceProvider.php を作成します。 <?php namespace App\Providers; use View; // Illuminate\Contracts\V
Laravel5 Advent Calendar 2015の11日目の記事です。 空いていたので、入ってみました。 Laravel5.1のEventの使い方について書いてみた。(ただし、ブロードキャストイベントは含まれません) Eventの機能は? LaravelのEvent機能はobserverの実装を提供しています。 observerという単語をあまり聞かない人にはわかりにくいかと思います。observerには監視者とか観察者という意味があり、今回の場合だとイベント状態を監視する仕組みですね。 JavaScriptの場合、Object.observe等が有名ですね。こちらは無くなってしまうみたいですが。 使う感覚としては、NodeJSのSocketIOの機能を内部的にやる感じです。これで分かってしまう人であれば、先に下の方に書いてある簡易的に書く方法から見ていったほうがよいかもしれませ
ReflectionClassはPHP5から導入されているクラスです。標準APIに搭載されています。 ReflectionClassはクラスについての情報を報告する役割を持っています。 今回は、そのReflectionClassについて、調べてみます。 ReflectionClassを使ってみる まずは、ReflectionClassのコンストラクタ。 公式によると以下の様に説明が。 public ReflectionClass::__construct ( mixed $argument ) $argumentには、 調べたいクラスのクラス名の文字列か、そのクラスのオブジェクトを指定 ん。。。何かよくわからないので一旦サンプルがあったので書いてみます。 <?php class A{} $ref = new ReflectionClass('A'); var_dump($ref); 結果
ファガイです。 本日は、Bootstrap3におけるFormのコーディングに関してまとめようかと思います。 基本的な話。 まずはミニマムな所から。知ってないと困る点。 input,select,textarea要素等にはform-controlというクラス名を付ける必要があります。 labelにはcontrol-labelというクラス名を付ける必要があります。 とりあえずこれだけはまず抑えましょう。分かってないとアウトです。 基本例 基本の例です。これはBootstrap公式に載っているものを少し減らして、一部だけ日本語に変えてます。 ここで下のソースを確認出来ます。 <form role="form"> <div class="form-group"> <label for="exampleInputEmail1">メールアドレス</label> <input type="email"
こんばんは。ファガイです。 今回は仕事などをやっていって、こうだったほうが困らないなぁって思ったことを書いていきたいと思います。
こんにちは。ファガイです。 本日は、LaravelのIoCコンテナ(サービスコンテナ)に関してまとめます。まとめてると言いつつも、今回は殆どバインディングの話だけです。 使用技術 Laravel5 概要 Laravel5で名前が変わったIoCコンテナですが、名前が変わってもやってる内容は基本的に変わりません。(ここでは、認知度が高いIoCコンテナに統一します。) 主に、Laravelのコアの存在なので、少しでも理解しておくと良いです。 IoCコンテナが主にやるのは依存の解決です。これはオブジェクト指向開発をやる上で非常に重要ですし、IoCコンテナを使うことで色々な処理がシンプルになります。 今回、bindメソッドの中身を掘り下げて紹介しています。想像以上に時間がかかりました。 LaravelのApplicationクラス、Containerクラス この2つのクラスは、Laravelのコアク
環境 CentOS 6.6 Amazon Linux 2015.03 hvmでも検証済 phpbrewのインストール epelとremiを入れる wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh epel-release-6-8.noarch.rpm sudo rpm -Uvh remi-release-6.rpm enableを0に変更する sudo vim /etc/yum.repos.d/epel.repo yumでupdate sudo yum update 色々必要っぽいの入れる(実はこの必要なものでよくインストール
Ansibleって何? Ansibleとか構成管理ツールのことで、Chef等のツールと大体は同じです。 Chefと比べ、AnsibleはRubyの理解を必要とせず、yaml形式での記述をするため、比較的初心者向けとなっております。 チームで開発したりする際に、ローカル環境を同一にするために使われると思います。 環境 環境は以下となります。出来るだけ最新の環境で試します。 Windows7 Vagrant1.6.5 VirtualBox4.3.12 Gow0.8.0 なお、参考にしているサイトは、 Ansible チュートリアル です。 GowはWindowsでlinuxコマンドが打てないため使用しています。 サーバーの準備 チュートリアルの通りにやっていきます。 $ mkdir ansible-tutorial $ cd ansible-tutorial $ vagrant init ce
こんにちは。ファガイです。 本日は、プログラマとして働き始めて2年ちょっと経ったので、ちょっと書こうと思います。 結構批判を受けるかもしれませんが、22歳ですでに転職を4回してきた自分が書きますので、少しは参考になるかなと思います。 最初は大企業に入るべき これは、私は明らかにそうするべきだと思っています。私の場合、言語を勉強することは好きでしたが、いざ物を作ろうと思うと設計や、どのようなフローで開発を行えばよいのか分かりませんでした。 私が最初に入った会社はベンチャー企業(IT系)でした。ベンチャーでかつ、エンジニアが誰もいませんでした。(少し前までアルバイトの人がいたが、自分が入ると同時に辞めていった) 当時の私は、何から何までどうしたら良いのか分からなかったため、良く分からずいました。しかし、納期が厳しく、残業が多くなり、結局4ヶ月ほどでその会社は辞めることとなりました。 その後、結
こんばんは。ファガイです。本日はJavaScriptだけでブラウザのある情報のデータを保存する機能の実装方法について書こうと思います。 概要 ローカル上だけでファイルの保存ができるようになる方法になります。 自分が作っているMarkdown-F Editorはその機能を使って保存を実装しています。 今回利用する機能はHTML5の機能なので、ブラウザによっては実装されていない可能性がありますので、注意。 確認ブラウザ IE11 Firefox GoogleChrome にて確認を取ってます。IEに関しては独自関数を使っているため、前のブラウザでは対応されていない可能性があります。 ソースコード ソース自体は結構簡単です。 var text = "テキストデータ"; var blob = new Blob([text], {type: "text/plain"}); // バイナリデータを作り
こんにちは。本日はLaravel4を使用する上で、活躍するだろうライブラリを紹介します。 先日、Laravelを最近始めた人がパッケージの存在に気づいてなかったので、これは便利だろうというものをリストアップしました。初心者の方は是非入れてみることをおすすめします。 特におススメのパッケージLaravel 4 Generators (way/generators)Laravel4に標準で搭載されているコード自動生成のためのコマンドを拡張するパッケージです。 入れないのは損ですし、知らなかったっていう人は入れてみることをおすすめします。非常に活発なので、今後もアップデートが期待できます。 Laravel IDE Helper Generator (barryvdh/laravel-ide-helper)こちらも有名。Laravelは動的な実装がされている関係でIDEの補完が効かない場合は多々あ
こんにちは。ファガイです。 本日は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' =>
こんばんは。ファガイです。 本日は、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に設定するということです。 私はここを勘違いしてい
こんにちは。ファガイです。 本日は、wkhtmltoxを使ってWebページのキャプチャを取ります。 環境は以下です。 CentOS6.4PHP5.4Apacheまずはじめに必要なライブラリ等があるので入れます。 # yum install libXrender fontconfig libXext とりあえずxvfpも入れましょう。もしかしたら入れ方間違えてるかもです。 # yum install xvfp それでは必要となるlibを用意します。 バージョンが0.11があったのですが、QPixmap: Cannot create a QPixmap when no GUI is being usedと出るため諦めて0.10のrc2版を使います。 # wget https://wkhtmltopdf.googlecode.com/files/libwkhtmltox-0.10.0_rc2-i
ここでは初のフロントエンドの記事です。 皆さん、CSSは書いてますか? ちゃんとしたCSS書けてますか? ということで、先日はてブ等ではfloatについて詳しく記事があったようなので私はCSSでのwidthに関して書きます。 widthに関して よくある話なんですが、このような記述を良く見かけます。 width: 100%; 何のことでもない、ただwidthを100%にしている例。主にwrapperやcontainer等、ベースの部分に良くあります。 しかしながら、こちらはただ単にベースに100%をやってるだけで、内部要素にはちゃんとwidth値を指定するでしょう。まあ指定しなくても、ベースが100%なので、100%が継承されるでしょう。 問題になってくるのは以下のような場合の時です。 #blockにはwidth:100%が指定されているまたは何も指定していない。inline-block達
こんにちは。ファガイです。 先日からLaravel4のworkbenchに関して知識を付けてました。 しかしながら、workbenchを作ってから動かそうとすると動かなかった。 エラーはServiceProviderが無いとのこと。 ServiceProviderはちゃんと用意していたし、名前空間も間違ってなかった。 最初、VendorNameとかベンダー名付けたからかとか疑ったけど、結局それじゃなかった。 実は、workbenchを作成している際に以下のエラーが表示されていた。 [root@fagailocal laravel]# php artisan workbench sample/package --resources Package workbench created! sh: composer: コマンドが見つかりません ??? 一応workbenchは作られてるっぽいから良
NodeJS最新版でチャットシステム。(2012/11/28現在) こんにちは。ファガイです。本日は、NodeJSを使って、簡易的なチャットシステムを作ろうと思います。 今回は、expressとsocket.ioを使ったシンプルなチャットアプリケーションを作成します。私が確認する限り、express3.x系での解説がなかったようなので、記事を書いております。 今回行った内容(ソース)は、 GitHub fagai / chat にて公開しております。 実行環境 Windows 8(or 7) Node 0.8.15 Nodeのインストール まず、公式サイトの http://nodejs.org/download/ からダウンロードをします。私の場合は、Windows Installerの64bit。 ダウンロード後、そのファイルを実行。 このような画面が出るので、nextで進んで行けばOK
こんにちは。ファガイです。 本日、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.問題なく生成できたら、c
そもそもLaravelとは LaravelはPHPフレームワークです。多分、現状のPHPフレームワークの中でもモジュールが疎結合に近く、非常に使い勝手が良いフレームワークとなっています。 一応、導入に関しては別の記事で記述しております。 Laravel4のインストールをやってみた 一気に本題に入ります。 Laravelのバリデーションは、FuelPHPのバリデーションよりも、簡略的に、かつ高機能に動作します。 基本的な部分は、kore1serverの方が翻訳されたドキュメント?をご確認下さい。 http://laravel4.kore1server.com/docs/validation Laravelのバリデーションはココが良い! ここからはLaravelのバリデーションの良い所を書きつつ、FuelPHPと比較します。 書き方がとても簡易的で分かりやすい。 書き方に関しては複数あるのです
注意:Laravel4の話です 2013-09-19追記 こちらの記事ですが、以下の記事の内容を行うと、insert等ができなくなるようになってしまいました・・・。 どうやら最後のIDが取得出来ないからこうなってしまうようです。 互換性などの点からもIDは付けるようにしましょう。複合ユニークキーとインデックスをつければそれなりにちゃんと速くなるはず こんにちは。ファガイです。 先日から個人的にサイトを制作していたのですが、衝撃の事実がわかりまして・・・ Eloquent ORMは複合主キーに対応していない! うん、複合主キーに対応していない。 皆見たらわかると思うんだ、Illuminate\Database\Eloquent\Builderのfindメソッドを見てみよう。 public function find($id, $columns = array('*')) { $this->q
PhalconDevToolsを使おう こんばんは。ファガイです。 今日は、PhalconDevToolsのインストールをやっていきましょう。 PhalconDevToolsの特徴 PhalconCommand機能 これが全てです。 PhalconCommandには以下のような物があります。 Project生成機能(基本的なプロジェクトベースを提供します。) Controller生成機能 Model生成機能、Model_ALL生成機能 migration生成機能(ここはまだ調べてませんがFuelと同様なものでしょう) scaffold生成機能 WebTools機能(今回はここに重点を置きます。) PhalconDevToolsの導入 では、導入をして行きましょう。 環境ですが、以前と同様 CentOS 6.4 Apache 2.2くらい PHP 5.4くらい Mysql 5.5くらい です
こんにちは。ファガイです。 本日はPhalcon PHPというPHPフレームワークを触ってみます。 Phalconとは? Phalconは一番高速なPHPフレームワークです。 内部がC言語で書かれており、PHP Moduleとして動作します。 そりゃあ早いよね。 導入 導入ですが、前提としてサーバーをいじれる環境でなければいけません。 つまり、共有サーバー等ではPhalconを入れることは無理です。(まずモジュールを追加出来ない) その点を理解した上でやっていきます。 ダウンロードや、先に必要な物は以下のURLに書いてあります。yum等でのインストールは先にやっておいてださい。 phalconphp download 主の環境 CentOS 6.4 Apache 2.2くらい? MySQL 5.5くらい? です。 では、cloneして、 # git clone git://github.c
PHP-APCとは PHP-APCとはAPC(Alternative PHP Cache)と呼ばれ、PHPの中間コードをメモリにキャッシュし、次回アクセス時に高速化ををするモジュールです。 以前から知っていましたが、高速化をする機会がなく、必要ないと思っていたのですが、一旦ローカル上でやってみようかなと思い、やってみた。 環境 一応環境。 CentOS 6 Apache 2.2.15 PHP 5.4.13 PHP-APCの導入 php-apcの導入はyumから行います。 yum install php-pecl-apc これでおk。 しかしながら、私の環境ではこんなエラーが。 Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp *
今回は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 C
基本使用方法 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 = M
こんばんは。ファガイです。今日は、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.
次のページ
このページを最初にブックマークしてみませんか?
『そこそこWebエンジニアの記録。』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く