Rails c や PHP oil c が結構役立つ
今までweb開発をしていてあまりコンソールを使うことがなく、何のためにあるのだろうと思っておりました。 しかしここ最近頻繁に使うようになったので、自分の使い道をいくつか列挙しようと思います。
因みに、Rails c
は Ruby on Rails で、PHP oil c
は FuelPHP です。
==
や===
についての検証
同値判定は言語によって癖があり、Rubyでは1=='1'
はTRUE
だっけ??みたいなことがよく起こります。
そんな時、Rails c
などでコンソールを開いて実際に確認してみたりします。
メソッドの戻り値
FuelPHPでUpload::save()
は何を返すんだっけ?っと思ったことがあり、webページ上に
echo Upload::save();
と書いて表示させていましたが、
よく考えてみるとこれもコンソールを使えば簡単に検証できるということに気がつきました。
他にもモデルから返ってくる配列ってどんなんだっけ?だとか、こういう条件指定したら何が返ってくるのかなーって時に使ったりしてます。
テーブルにテストデータを挿入
コンソール上でモデルのインスタンスを取得し、保存すれば実際のテーブルにレコードが挿入されます。 当たり前のことですが、この使い方を知らなかった私はテストデータを挿入するためだけのアクションをわざわざ作っていました。
他にもレコード挿入時のバリデーションが正しく動作しているかの確認にも使えます。←テスト書け
パッと思いついたのはこれぐらいですが、要するに言語仕様の確認です。
まだまだweb開発初心者ですが上記のような当たり前のことを出来るようにし、開発効率を上げられるようになれたらと思います。
PHPでファイルアップロードがうまくいかない問題
最近 PHP のフレームワークである FuelPHP を使い始めたのですが、FuelPHP でファイルアップロードを実装しても特定のファイル(.wav
)のみエラーになってしまい困っていました。
少し調べてみると原因は.wav
であることが問題なのではなく、ファイルサイズが大きすぎることが原因だとわかりました。
しかもこの問題は FuelPHP の場合は下記のようなエラーが出てきてしまい、原因が特定しづらくなっています。(<form>
タグにenctype
がついてないぞって言われる)
Fuel\Upload\NoFilesException [ Error ]:
No uploaded files were found. Did you specify "enctype" in your
<form>
tag?
因みにMacで開発していたときは、ファイルサイズが上限を超えていたときはそもそも$_FILE
配列に何も入らないということも起きました。
上記のような事象が発生した場合はまずファイルサイズの上限を疑ってみるといいかもしれません。
php.ini
を編集して、アップロードサイズの上限を変更
原因がファイルサイズだと判明したので、php.ini
のupload_max_filesize
の値を大きくすれば解決すると思っていたのですが、どうやらこれだけでは上手くいかないようです。
このほかにもpost_max_size
とmemory_limit
の値も変更する必要があるみたいです、詳しくは下記のサイトを参照してください。
php.iniの設定を変えてもファイルをアップロードできないケース
アップロードサイズの上限については、php.ini
以外にも.htaccess
ファイルに記述しても問題ありません。
むしろphp.ini
ファイルの編集が出来ないレンタルサーバーもあるので、.htaccess
に記述しておいたほうが無難なのではないかと思います。
今回の事象で自分は.htaccess
ファイルの最後に下記のような記述を追加して対応しました。
なお、FuelPHP の.htaccess
はpublic/
にあります。
php_value memory_limit 40M php_value post_max_size 32M php_value upload_max_filesize 32M
高校を卒業したので、新しくブログを始めてみた。
初めまして、焼きそばメロンパンです。
Twitterやってます、基本プログラミング関連のことを呟きます。
高校時代は下記のブログをやってました。
ほとんどC言語ですし、あまり実用的では無いものですが。
これからはプログラミングに縛られず、幅広い記事を書いていこうと思っています。
プログラムに関しては、C/C++ / Java / PHP / Ruby / JavaScript が中心になると思います。
高校時代はC++でノベルゲーム作ったりしてました。
下記のサイトで紹介しています、DXライブラリを使用していますが、ノベルシステムは自作しています。
ブラウザでもプレイできます、よかったら遊んでみて下さい。(Google Chrome推奨、windows専用)
4月からは情報系の専門学校に通います、ネットワークを中心にやるそうでとても楽しみです。(高校時代はOSやネットワークには全く触れなかったので)
将来の夢はセキュリティエンジニアです、具体的に何をするかは決めていませんが、web系やソフトウェア解析系には憧れています。
これからふと感じたことがあるたびに記事を書いていこうと思いますので、よろしくお願いします。