この記事を書いた背景 CodeIgniter 3.0を使おうとサーバーにセットアップしたのは良いのですが、viewに日本語書くと化けるという問題が発生。 困るので直したのでメモ。 原因 調べた順番は次の通り。 ファイルのエンコードを確認し、問題なし。 Google Chromeの開発者ツールでhttpリクエスト/レスポンスを見てみる、文字化けている。 素のHTMLファイルを置いてみる、問題なし。 phpinfo()見てみる、mbstringのLocal ValueがEUC-JP、ダメ。 ということで、PHPの設定の問題でした。 解決方法 PHPの設定を変更すれば良いのですが、レンタルサーバーなのでPHPの設定ファイルを用意してApache側から読み込む用に設定すればOKです。 次の2ステップで解決です。 php.iniに下記の内容を書いて保存します。 mbstring.script_enc
CodeIgniterもバージョン3となり、「いちばん変わったのはライセンス」という程度に、フレームワークの大枠にはあまり大きな変化がなかったのですが、セッションまわりのライブラリは完全に書き換えられています。 CodeIgniter 2時代は付属のセッションライブラリが機能不足で、いろいろ学んで自ら手を入れざるを得なかったのですが、新バージョンではどうなっているか見て行きましょう。 $_SESSIONの利用 まずいちばんの注目点は、$this -> session -> userdataというCodeIgniter独自の流儀ではなく、PHP標準のスーパーグローバルである$_SESSIONを使う形となっていることです。すなわち、$_SESSIONを使うような(CodeIgniterとは別系統の)ライブラリも、そのままCodeIgniterのセッションを使えるようになるということです。 いっ
CodeIgniterのモデルを使いやすくしよう CodeIgniterのモデルは、自由度が高いですね。他のフレームワークでは、テーブルとモデルが密な関係になっていいて、ちょっと扱いづらいところがあるんですが、CodeIgniterは自由すぎるぐらい自由です。CodeIgniterのソースコードを読むと、その途方も無い自由さは分かります。ただ、自由すぎるがゆえに不便なところもあります。これを使いやすくしましょうというのが、ここでテーマです。 不便その1:いちいちテーブル名を指定すること たとえば、users_modelというモデルがあるとしましょう。そこから usersテーブルのレコードを引っ張ってくる時は、 $query = $this->db->get_where('users', array('id' => $id)); $result = $query->result_array(
404lab, c'est l'histoire de deux toulousains passionnés par le web et son écosystème. La réussite de nos projets repose sur une connaissance approfondie de notre activité. Nous ne travaillons pas avec des clients, seulement avec des partenaires. Notre savoir-faire Nous sommes armés d'outils modernes ayant fait leurs preuves permettant de répondre à tous les besoins, des plus simples aux plus compl
PhpStormとCodeIgniterを利用している場合、 PhpStormでautocompleteを有効にする方法(CodeIgniter3利用時) の方法で、autocompleteを有効にできた。 これで多少コーディングがはかどる。 もっと便利にできないだろうか?CodeIgniterでは**$this->**をたくさん記述する。 public function create() { $this->load->helper('form'); $this->load->library('form_validation'); $data['title'] = 'Create a news item'; $this->form_validation->set_rules('title', 'Title', 'required'); $this->form_validation->set
CodeIgniter 2.2.6リリース CakePHP 1.x系の最終バージョン CakePHP 1.3.21 がリリースされたようですが、CodeIgniter 2.x系の最終バージョン2.2.6も2015/10/31にリリースされています。セキュリティ修正版です。以下が含まれています。 xss_clean()メソッドの脆弱性修正 base_url()のHostヘッダインジェクション回避のための修正 CAPTCHAヘルパーでシステムのPRNGを優先して使用するように変更 XSSフィルタの脆弱性修正はもはや恒例になった感がありますが、個人的にはXSSフィルタは使わないことを推奨しています。詳細は、以下の記事をご覧下さい。 CodeIgniter ユーザが CodeIgniter の XSS フィルタについて知るべき 5つのこと なお、CodeIgniter 3.0ではXSSフィルタを入
PHP FrameworkにCodeIgniter3を採用したプロジェクトをPhpStorm(ver.9.0.2)で編集している。PhpStormのメソッド・プロパティ補完機能(autocomplete機能)はとても便利で、コード記述を強力にサポートしてくれる。また、定義にジャンプする機能もコードの実装を追うのにとても有益だ。 参考: Code Completion - Help | PhpStorm しかしCodeIgniterの機能を使ったソースコードは思うように補完機能が働かない。 CodeIgniterではModelやContorollerでクラスを利用する時にローダーを利用するが、$this->loadするとインスタンスは$this->xxxにセットされ、$this->xxx->funcのように利用する。 このとき「$this->xxx」が何者なのかPhpStormは分からないの
Generate your CRUD. The easy way. CRUDigniter allows you to automatically create complete Codeigniter CRUD for your database tables, with form validation rules, column associations and form controls. Show Me Choose from the list of standard Codeigniter v3 form validation rules or auto-generate your field rules based on your database. For example: - If the DB column is selected as not null, the rul
おはようございます。 まーくあっぷえんじにアの です。 CodeIgniterのFormValidationのconfigが結構使いにくいと聞きます。 私も使いにくいと思いあまり使いませんでしたが コアを書き換えない範囲でなんとかできるんじゃないだろうか。 という事で実際にやってみた備忘録です。 config/form_validation.phpの不便な点 便利だけど大規模だとconfigファイルなんか見づらい FormValidationロードしただけでconfig配列がえらい事になっちゃってメモリの無駄感が半端ない config/form_validation.phpの便利な点 controllerを書く時に$this->form_validation->run()で済むので楽だし短くて済む 検証ルールが書かれている箇所が統一されているので便利 問題点を解消する為に実際にやってみたコ
気づいたら、私が「CakePHP」ではなく「CodeIgniter」を選んだ3つの理由を書いてから早1年。ということは、Codeigniterを使い出してから1年経ってました。本当、時間が流れるのは早い・・・。 そこで、この1年間にやらかしちゃったアンチパターン(そして、リファクタリングに無駄に時間をかけてしまった)を5つご紹介します。 1.Modelでデータ処理をしない(sql関連のみにしちゃう) 最初、Modelはデータベースと接続するソケット的イメージをしていました。そうなるとどうなるかというと、例えば生徒の「名簿」と「成績」を取得する時に、Modelを以下のように用意して、それをControllerでforeachで回してくっつける、みたいなことをしちゃうのです。 モデル [php] function 名簿(){ $sql = "SELECT * FROM 名簿"; $query
簡単で導入しやすいライブラリ「CodeIgniter」 今まで「Perl」とか「CakePHP」とかにお世話になっていたけれど、最近はCodeIgniterで満足しています。 導入も削除も簡単で、しかも日本語ライブラリがすごく充実している。 参考までにこちらから、ご確認くださいね。 少し前、CodeIgniterを使っていたときに迷ってしまったのが、 ActiveRecordクラスを使ったときの値の取り出し方。 // 駄目だったやつ $query = $this->db->get('tableName'); var_dump($query); こんな感じにやっても、お望みの値が取得できなかった... そんな若かりし頃、これもまた1時間ほどかけようやく解決したことを今でも思い出せますね... 解決方法は「result()」 $query = $this->db->get('tableName
CodeIgniter3でCRONを使い、コントローラーのメソッドを呼び出す方法のメモ。基本的には2の時と同じなのだけど、コマンドラインからの呼び出しかどうかを判定するメソッド$this->input->is_cli_request()が非推奨になり、is_cli()が代わりに使われるようになった。 参考 Running via the CLI — CodeIgniter 3.0.1 documentation <?php class Foo extends CI_Controller { public function bar ($to = 'World' ) { echo "Hello {$to}!"; } } 上のようなコントローラーを用意した場合、cronの設定は以下の通り。 * * * * * php /var/html/codeigniter3/index.php foo ba
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く