Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CodeIgniterを初めて使うときに
ハマった4つのポイント
2013-10-12 noldor
自己紹介
• 名前:竹腰彰成(noldor)
• 所属:株式会社アロハ 代表取締役
• お仕事:ECサイトの構築、保守など
• 最近の興味:嫁(@miccweb)
今日のお話
• 実際に自分がはまった4つをまとめました
– Production環境でエラーログが保存されない
– 上記に対応するとエラーが表示される
– メールが文字化け
– メールが設定無視でwordwrapされる
ここから高橋メ
ソッド風にいき
ます
1つめ
Production環境
でエラーログが
保存されない
まず
使い始めるに
あたりソースを
先頭から確認
index.php
( ゚ Д ゚) …?
index.php
(つд ⊂)ゴシゴシ
_, ._
( ゚ Д ゚) …
_, ._
(#゚ Д ゚)
error_reporting
とは
PHP エラーの出
力レベルを設
定する関数
PHPのエラーロ
グの出力にも
影響する
0(出力なし)で
再設定していた
ので
php.iniのエラー
ログ出力設定
は無視される
Fatalで落ちると
CIのエラー処理
では拾えないこ
とがあるので
php.iniで設定を
しておきたい
すぐさま書き換
えました
これでエラーロ
グが出力されま
す
……が、これが
罠になります
2つめ
Production環境
でエラーが表示
される
さきほど書き換
えた
これを
本番環境で動
作テストします
本番環境は
php.iniで
display_errors =
Off
エラー表示を抑
制します
error_log =
/var/log/php_e
rrors.log
ログに運用時
のエラーも確保
これで本番でも
エラーを追え
る!
なぜだか表示されるんですけど
CIのエラー表示
方法は
デザイン的にき
れいに見せる
ために
自前でエラー表
示している
PHP標準のエ
ラー表示はされ
ない
コード追いまし
た
system/core/common.php
// Should we display the error? We’ll
get the current error_reporting level
and add its bits with t...
(意訳)
error_reporting()の
設定レベルのエラー
なら表示するよ
CIが
display_errorを
無視してた
orz
書き換えました
system/core/common.php
一緒に書き換
えました
index.php
development環境では強制的にエラー表示
3つめ
メールで文字化
け
ネットに文字化
け事例報告
あり
メールで文字化
けしている事例
が多い
原因は文字
コード回りなど
など
まあ海外のフレームワークは
だいたい化けるよね;
解決策は複数
提示あり
MY_Emailクラス
を作る方法が
一番楽そう
というわけでコ
ピペ
https://gist.github.com/takekoshi/6931872
に手入れしたものを用意しました
これで文字化
け解決
ように見えて、
実はコンストラ
クタが罠に
いろんなblogに
似通ったコード
がありますが
コンストラクタも
ほぼ共通なの
で要注意
4つめ
メールが設定
無視で
wordwrapされ
る
気づいたのは
行末だけ文字
化け
よく見ると
wordwrapされ
てる
設定ファイルで
offにしてるの
に?
ソースを追いか
けます
system/libraries/Email.php
設定ファイルの読込はコンストラクタ経由
さっきの
MY_Email
コンストラクタ……引数なし
設定値が握り
つぶされてる
orz
対応方法
コンストラクタに
変更はないの
で
削除(オーバー
ライドしない)
まとめ
• Production環境でエラーが保存されない
– error_reporting()を設定し直す
• 上記に対応するとエラーが表示される
– display_errorを無視しないように書き換え
• メールが文字化け
– MY_E...
ご清聴ありがとうございました
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
Upcoming SlideShare
Loading in …5
×

Code igniterを初めて使うときにはまった4つのポイント

13,090 views

Published on

2013-10-12 FuelPHP&CodeIgniter ユーザの集い にて。
http://atnd.org/events/43750

Published in: Technology
  • Be the first to comment

Code igniterを初めて使うときにはまった4つのポイント

  1. 1. CodeIgniterを初めて使うときに ハマった4つのポイント 2013-10-12 noldor
  2. 2. 自己紹介 • 名前:竹腰彰成(noldor) • 所属:株式会社アロハ 代表取締役 • お仕事:ECサイトの構築、保守など • 最近の興味:嫁(@miccweb)
  3. 3. 今日のお話 • 実際に自分がはまった4つをまとめました – Production環境でエラーログが保存されない – 上記に対応するとエラーが表示される – メールが文字化け – メールが設定無視でwordwrapされる
  4. 4. ここから高橋メ ソッド風にいき ます
  5. 5. 1つめ
  6. 6. Production環境 でエラーログが 保存されない
  7. 7. まず
  8. 8. 使い始めるに あたりソースを 先頭から確認
  9. 9. index.php
  10. 10. ( ゚ Д ゚) …?
  11. 11. index.php
  12. 12. (つд ⊂)ゴシゴシ _, ._ ( ゚ Д ゚) …
  13. 13. _, ._ (#゚ Д ゚)
  14. 14. error_reporting とは
  15. 15. PHP エラーの出 力レベルを設 定する関数
  16. 16. PHPのエラーロ グの出力にも 影響する
  17. 17. 0(出力なし)で 再設定していた ので
  18. 18. php.iniのエラー ログ出力設定 は無視される
  19. 19. Fatalで落ちると CIのエラー処理 では拾えないこ とがあるので
  20. 20. php.iniで設定を しておきたい
  21. 21. すぐさま書き換 えました
  22. 22. これでエラーロ グが出力されま す
  23. 23. ……が、これが 罠になります
  24. 24. 2つめ
  25. 25. Production環境 でエラーが表示 される
  26. 26. さきほど書き換 えた
  27. 27. これを
  28. 28. 本番環境で動 作テストします
  29. 29. 本番環境は php.iniで
  30. 30. display_errors = Off
  31. 31. エラー表示を抑 制します
  32. 32. error_log = /var/log/php_e rrors.log
  33. 33. ログに運用時 のエラーも確保
  34. 34. これで本番でも エラーを追え る!
  35. 35. なぜだか表示されるんですけど
  36. 36. CIのエラー表示 方法は
  37. 37. デザイン的にき れいに見せる ために
  38. 38. 自前でエラー表 示している
  39. 39. PHP標準のエ ラー表示はされ ない
  40. 40. コード追いまし た
  41. 41. system/core/common.php // Should we display the error? We’ll get the current error_reporting level and add its bits with the severity bits to find out.
  42. 42. (意訳) error_reporting()の 設定レベルのエラー なら表示するよ
  43. 43. CIが display_errorを 無視してた orz
  44. 44. 書き換えました
  45. 45. system/core/common.php
  46. 46. 一緒に書き換 えました
  47. 47. index.php development環境では強制的にエラー表示
  48. 48. 3つめ
  49. 49. メールで文字化 け
  50. 50. ネットに文字化 け事例報告 あり
  51. 51. メールで文字化 けしている事例 が多い
  52. 52. 原因は文字 コード回りなど など
  53. 53. まあ海外のフレームワークは だいたい化けるよね;
  54. 54. 解決策は複数 提示あり
  55. 55. MY_Emailクラス を作る方法が 一番楽そう
  56. 56. というわけでコ ピペ
  57. 57. https://gist.github.com/takekoshi/6931872 に手入れしたものを用意しました
  58. 58. これで文字化 け解決
  59. 59. ように見えて、 実はコンストラ クタが罠に
  60. 60. いろんなblogに 似通ったコード がありますが
  61. 61. コンストラクタも ほぼ共通なの で要注意
  62. 62. 4つめ
  63. 63. メールが設定 無視で wordwrapされ る
  64. 64. 気づいたのは
  65. 65. 行末だけ文字 化け
  66. 66. よく見ると wordwrapされ てる
  67. 67. 設定ファイルで offにしてるの に?
  68. 68. ソースを追いか けます
  69. 69. system/libraries/Email.php 設定ファイルの読込はコンストラクタ経由
  70. 70. さっきの MY_Email
  71. 71. コンストラクタ……引数なし
  72. 72. 設定値が握り つぶされてる orz
  73. 73. 対応方法
  74. 74. コンストラクタに 変更はないの で
  75. 75. 削除(オーバー ライドしない)
  76. 76. まとめ • Production環境でエラーが保存されない – error_reporting()を設定し直す • 上記に対応するとエラーが表示される – display_errorを無視しないように書き換え • メールが文字化け – MY_Emailで対応するがネットから持ってくる場合は注 意が必要 • メールが設定無視でwordwrapされる – wordwrapが利いてしまう場合はMY_Emailのコンスト ラクタで設定を握りつぶしてないか注意
  77. 77. ご清聴ありがとうございました

×