Submit Search
Upload
Code igniterを初めて使うときにはまった4つのポイント(ノーマル版)
•
1 like
•
4,512 views
N
noldor
Follow
発表しなかった没資料(内容はほぼ同じ)
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 28
Download now
Download to read offline
Recommended
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
noldor
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
Tomohiro Kumagai
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
Xcode 7で始めるCI
Xcode 7で始めるCI
yuki0211s
PHPUnitでリファクタリング
PHPUnitでリファクタリング
Takako Miyagawa
NSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansai
Tomohiro Kumagai
Recommended
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
noldor
Codeigniter3フレームアップデート
Codeigniter3フレームアップデート
tomohiro kitaura
2011 PHPカンファレンス関西 懇親会LT
2011 PHPカンファレンス関西 懇親会LT
Takako Miyagawa
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
Tomohiro Kumagai
Xcode グループとフォルダー参照 #yhios
Xcode グループとフォルダー参照 #yhios
Tomohiro Kumagai
Xcode 7で始めるCI
Xcode 7で始めるCI
yuki0211s
PHPUnitでリファクタリング
PHPUnitでリファクタリング
Takako Miyagawa
NSNotification in Swift #cocoa_kansai
NSNotification in Swift #cocoa_kansai
Tomohiro Kumagai
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
Takako Miyagawa
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
Tomohiro Kumagai
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Masaru Gushiken
Lt 110416
Lt 110416
Tomoyuki Obi
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Tomohiro Kumagai
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
Tomohiro Kumagai
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
アルゴリズム+データ構造勉強会(10)
アルゴリズム+データ構造勉強会(10)
noldor
Java scriptによるテスト駆動開発
Java scriptによるテスト駆動開発
Hidekazu Nakamura
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
noldor
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
noldor
アルゴリズム+データ構造勉強会(7)
アルゴリズム+データ構造勉強会(7)
noldor
アルゴリズム+データ構造勉強会(14)
アルゴリズム+データ構造勉強会(14)
noldor
アルゴリズム+データ構造勉強会(15)
アルゴリズム+データ構造勉強会(15)
noldor
アルゴリズム+データ構造勉強会(11)
アルゴリズム+データ構造勉強会(11)
noldor
アルゴリズム+データ構造勉強会(12)
アルゴリズム+データ構造勉強会(12)
noldor
とりあえずはじめるChatOps
とりあえずはじめるChatOps
正貴 小川
Study 20131009
Study 20131009
fujii_t
アルゴリズム+データ構造勉強会(5)
アルゴリズム+データ構造勉強会(5)
noldor
アルゴリズム+データ構造勉強会(6)
アルゴリズム+データ構造勉強会(6)
noldor
More Related Content
What's hot
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
Takako Miyagawa
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
Tomohiro Kumagai
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Masaru Gushiken
Lt 110416
Lt 110416
Tomoyuki Obi
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Tomohiro Kumagai
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
Tomohiro Kumagai
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
What's hot
(9)
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Swift 構造体の時代 #yidev
Swift 構造体の時代 #yidev
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Lt 110416
Lt 110416
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
Viewers also liked
アルゴリズム+データ構造勉強会(10)
アルゴリズム+データ構造勉強会(10)
noldor
Java scriptによるテスト駆動開発
Java scriptによるテスト駆動開発
Hidekazu Nakamura
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
noldor
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
noldor
アルゴリズム+データ構造勉強会(7)
アルゴリズム+データ構造勉強会(7)
noldor
アルゴリズム+データ構造勉強会(14)
アルゴリズム+データ構造勉強会(14)
noldor
アルゴリズム+データ構造勉強会(15)
アルゴリズム+データ構造勉強会(15)
noldor
アルゴリズム+データ構造勉強会(11)
アルゴリズム+データ構造勉強会(11)
noldor
アルゴリズム+データ構造勉強会(12)
アルゴリズム+データ構造勉強会(12)
noldor
とりあえずはじめるChatOps
とりあえずはじめるChatOps
正貴 小川
Study 20131009
Study 20131009
fujii_t
アルゴリズム+データ構造勉強会(5)
アルゴリズム+データ構造勉強会(5)
noldor
アルゴリズム+データ構造勉強会(6)
アルゴリズム+データ構造勉強会(6)
noldor
アルゴリズム+データ構造勉強会(13)
アルゴリズム+データ構造勉強会(13)
noldor
アルゴリズム+データ構造勉強会(4)
アルゴリズム+データ構造勉強会(4)
noldor
AWSをテラフォーミングする会(Terraformハンズオン)
AWSをテラフォーミングする会(Terraformハンズオン)
正貴 小川
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Masahiro Nagano
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
Viewers also liked
(20)
アルゴリズム+データ構造勉強会(10)
アルゴリズム+データ構造勉強会(10)
Java scriptによるテスト駆動開発
Java scriptによるテスト駆動開発
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(9)
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(7)
アルゴリズム+データ構造勉強会(7)
アルゴリズム+データ構造勉強会(14)
アルゴリズム+データ構造勉強会(14)
アルゴリズム+データ構造勉強会(15)
アルゴリズム+データ構造勉強会(15)
アルゴリズム+データ構造勉強会(11)
アルゴリズム+データ構造勉強会(11)
アルゴリズム+データ構造勉強会(12)
アルゴリズム+データ構造勉強会(12)
とりあえずはじめるChatOps
とりあえずはじめるChatOps
Study 20131009
Study 20131009
アルゴリズム+データ構造勉強会(5)
アルゴリズム+データ構造勉強会(5)
アルゴリズム+データ構造勉強会(6)
アルゴリズム+データ構造勉強会(6)
アルゴリズム+データ構造勉強会(13)
アルゴリズム+データ構造勉強会(13)
アルゴリズム+データ構造勉強会(4)
アルゴリズム+データ構造勉強会(4)
AWSをテラフォーミングする会(Terraformハンズオン)
AWSをテラフォーミングする会(Terraformハンズオン)
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Similar to Code igniterを初めて使うときにはまった4つのポイント(ノーマル版)
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
Ryohei Kamiya
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
Makoto SAKAI
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
Takeshi Yoshida
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
IaC化の3つのポイント
IaC化の3つのポイント
山下 達也
エンジニアという職業について
エンジニアという職業について
Hisatoshi Kikumoto
WPF on .NET Core 3.0
WPF on .NET Core 3.0
一希 大田
絵心なくても大丈夫。Holoなホラーゲームの提案
絵心なくても大丈夫。Holoなホラーゲームの提案
Akira Hatsune
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
初めてのWebプログラミング講座
初めてのWebプログラミング講座
DIVE INTO CODE Corp.
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
OSC福岡 20111203
OSC福岡 20111203
Hiroshi Bunya
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
超効率的フロントエンドデバッグ術
超効率的フロントエンドデバッグ術
Shinji Hashimoto
Similar to Code igniterを初めて使うときにはまった4つのポイント(ノーマル版)
(20)
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
IaC化の3つのポイント
IaC化の3つのポイント
エンジニアという職業について
エンジニアという職業について
WPF on .NET Core 3.0
WPF on .NET Core 3.0
絵心なくても大丈夫。Holoなホラーゲームの提案
絵心なくても大丈夫。Holoなホラーゲームの提案
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
初めてのWebプログラミング講座
初めてのWebプログラミング講座
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
OSC福岡 20111203
OSC福岡 20111203
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
超効率的フロントエンドデバッグ術
超効率的フロントエンドデバッグ術
Recently uploaded
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(10)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Code igniterを初めて使うときにはまった4つのポイント(ノーマル版)
1.
CodeIgniterを初めて使うときに ハマった4つのポイント 2013-10-12 noldor
2.
自己紹介 • • • • 名前:竹腰彰成(noldor) 所属:株式会社アロハ 代表取締役 お仕事:ECサイトの構築、保守など 最近の興味:ConoHa(VPS)のローカルネット ワークでネットワーク構築をどこまでできるか 挑戦中 – 10/3に値下げありがたや
3.
今日のお話 • 実際に自分がはまった4つをまとめました – Production環境でエラーが保存されない –
上記に対応するとエラーが表示される – メールが文字化け – メールが設定無視でwordwrapされる
4.
PRODUCTION環境でエラーログが 保存されない
5.
使い始めにソースを先頭から確認 • index.php
6.
_, ._ ( ゚
Д ゚) …? (つд ⊂)ゴシゴシ _, ._ ( ゚ Д ゚) …
7.
_, ._ (#゚ Д
゚)
8.
error_reporting()とは • PHP エラーの出力レベルを設定する関数 •
PHPのエラーログの出力にも影響する • 0(出力なし)で再設定していたのでphp.iniの エラーログ出力設定は無視される ※Fatalで落ちるとCIのエラー処理では拾えな い場合があるのでphp.iniで設定をしておきた い
9.
すぐさま書き換えました これでエラーログが出力されます ……が、これが罠になります
10.
前述に対応するとPRODUCTION環 境でエラーが表示される
11.
さきほど書き換えました
12.
本番環境で動作テスト • 本番環境はphp.iniで display_errors =
Off に設定してエラー表示を抑制 • error_log = /var/log/php_errors.log でログに取っておけば運用時のエラーも確保 これで本番でもエラーを追える!
13.
なぜだか表示されるんですけど
14.
CIのエラー表示方法 • デザイン的にきれいに見せるために自前でエ ラー表示している • エラーハンドリングしてPHP標準のエラー表示 はされないようにしている
15.
コード追いました • system/core/common.php 意訳)error_reporting()の設定レベルのエラー なら表示するよ • CIがdisplay_errorを無視してたorz
16.
書き換えました • system/core/common.php
17.
一緒に書き換えました • index.php development環境では強制的にエラー表示
18.
メールで文字化け
19.
ネットに文字化け事例多し • CodeIgniterで調べているとメールで文字化け している事例が多い • 原因は文字コード回りなどなど –
(海外のフレームワークはだいたい化けるよね) • 解決策は複数提示されていますがMY_Email クラスを作る方法が一番楽そう
20.
というわけでコピペ • ネットにあるものを拝借&手入れしました https://gist.github.com/takekoshi/6931872 • 解決したように見えて、実はコンストラクタが 罠になります (いろんなblogサイトに似通ったコードがあり ますが、コンストラクタもほぼ共通)
21.
メールが設定無視でWORDWRAPさ れる
22.
行末だけ文字化け • MY_Email.phpを作ることで文字化けを回避し たように見えたけど…… • 行末だけ文字化ける事例が発生 –
よく見るとwordwrapされていた – 設定ファイルでoffにしてるのに?
23.
行末文字化けの原因は2つ • 設定ファイルapplication/config/email.phpで $config[‘wordwrap’] =
false; としているのに自動改行されている • マルチバイト文字が途中で泣き別れている – ソースを見るとstrlen()で判定していた – 76バイトで切るのでUTF8で泣き別れやすい
24.
設定無視を解決することに • 解決対象は「設定が無視されている」こととし ました – mb_strlen()で置き換えていくには量が少し多い –
都合上wordwrapはoffにしたい
25.
ソースを追いかけます • system/libraries/Email.php • 設定ファイルの読込はコンストラクタ経由
26.
さっきのMY_Email • コンストラクタ……引数なし • ここで設定値が握りつぶされました •
対応方法:コンストラクタは動作変更なしなの で、この4行を削除(オーバーライドしない)
27.
まとめ • Production環境でエラーが保存されない – error_reporting()を設定し直す •
上記に対応するとエラーが表示される – display_errorを無視しないように書き換え • メールが文字化け – MY_Emailで対応するがネットから持ってくる場合は注 意が必要 • メールが設定無視でwordwrapされる – wordwrapが利いてしまう場合はMY_Emailのコンスト ラクタで設定を握りつぶしてないか注意
28.
ご清聴ありがとうございました
Download now