質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

Q&A

解決済

1回答

3080閲覧

FuelPHPについていくつかの質問

star24star

総合スコア115

FuelPHP

FuelPHPは、軽量高速で開発が可能なPHPのWebアプリケーションフレームワークです。

0グッド

3クリップ

投稿2015/05/26 03:02

編集2015/05/27 05:31

1.Viewファイル内において<?php ?>を使用してもいいのか
2.SESSIONを使用する場合はクラスを用いらなければならないのか?
if(isset($_SESSION['name']) && isset($_SESSION['message']))
などPHPと同じ書き方ではいけないのか
$_SESSION['name']$_SESSION['message']→Session::set('name', 'message'); ??

3.DBに関してはModelを使用するが、クエリの実行などはどのように書くのか?
($A = $DB->Query($sql);などのような書き方ではいけないのか)
4.掲示板作成しており、入力・確認・一覧と3画面あるがすべてのファイルをHTML・PHP・DBにわけて
作成するのか??
(DBのファイル/クラスは読み込み?)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PHP歴1年、fuelPHP歴半年程度で参考になるかわかりませんが...

1.Viewで<?php ... ?>を使用してもいいか
Viewの範囲内ならいいと思います。
たとえば、画像を表示する際、どの拡張子のファイルが入っているかわからないときなどは

lang

1~~~ 2<td> 3<?php 4$ext_array = array( "{$fname}.png", "{$fname}.jpg", "{$fname}.jpeg", "{$fname}.gif" ); 5foreach( $ext_array as $ext ) { 6 if( file_exists(IMG_PATH . $ext) ) { 7 echo "<img src='" . IMG_URL_PATH . $ext . "' />"; 8 break; 9 } 10} 11?> 12</td> 13~~~

といった形で私は使うこともあります。↑の場合もファイルの有無をControllerで判別して

lang

1<td> 2<?php 3 echo "<img src='" . IMG_URL_PATH . $fname . "' />"; 4?> 5</td>

のほうがより良い気もしますが、ケースバイケースです。

2.Sessionクラスを使わねばならないか
使ったほうが便利な気はします。ただそれだけです。

3.クエリの実行について
クエリはCrudなどを使って Model_Test::find_all(); などが便利ですが
ややこしいSQL文をベタで書くときは次のようにしています。
(検索結果を配列で受け取るために as_array をつけてます)

lang

1$sql = "select a from b"; 2$result = \Fuel\Core\DB::query($sql, \Fuel\Core\DB::SELECT)->execute()->as_array(); 3if( $result === false ) 4{ 5 // エラー処理 6}

更新系なら

lang

1$sql = "update a set b = c"; 2$result = \Fuel\Core\DB::query($sql, \Fuel\Core\DB::UPDATE)->execute(); 3if( $result === false ) 4{ 5 // エラー処理 6}

です。

4.掲示板作成
私が作るならController 1つ、Model 1つ、View 3つです。
(HTML、PHP、DBに分けるというのがわかりませんが)

lang

1/**************************************** 2** Controller 3****************************************/ 4class Controller_Bbs extends Controller 5{ 6 public function action_index() { 7 // 記事などを検索して一覧表示用のViewを開く 8 } 9 public function action_edit() { 10 if( \Fuel\Core\Input::post() ) { 11 $val = $this->validation_form(); 12 if( $val->run() ) { 13 // Validation通過時の処理。この後、確認用のViewを開く 14 } else { 15 // Validation通過しないときの処理 16 } 17 } else { 18 // POSTじゃないときの処理(一覧から「編集」リンクできたときなど) 19 } 20 } 21 public function action_confirm() { // 確認用 22 if( \Fuel\Core\Input::post() ) { 23 // 登録処理 24 } else { 25 // 初期の確認情報表示 26 } 27 } 28 private function validation_form() { 29 // Validationを記述 30 } 31} 32 33/**************************************** 34** Model ( ベタ書きSQLを想定 ) 35****************************************/ 36class Model_Bbs extends Model { 37 public static function get_all_article() { 38 $sql = "select * from BBS "; 39 $result = \Fuel\Core\DB::select($sql, \Fuel\Core\DB::SELECT)->execute()->as_array(); 40 // 以下、エラー処理など 41 } 42 public static function insert_bbs( $arrArticle ) { 43 // 新規登録処理 44 } 45 // 以下、更新や削除など必要メソッド 46} 47 48/**************************************** 49** View 50****************************************/ 51//Viewフォルダに 52// index.php 一覧表示用View 53// edit.php 入力用View 54// confirm.php 確認用View 55// これらを作ればいいんじゃないでしょうか?

こんなところですが、いかがでしょうか?

投稿2015/06/04 06:51

DAIDAI

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

star24star

2015/12/11 05:40

だいぶ遅くなってしまいましたがご回答くださいまして有難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問