PHPのフレームワークについて
今回はPHPのフレームワークについて思ったことを書きたいと思います。
今までは、独自フレームワークを書いて、サイトを色々作成してきてましたが、
実はこれは悪だったのではないかと思ってきています。。。
なぜ、そう思ったのかの経緯ですが、
最近、色々と受注を受けて仕事を受けることが多いのですが、その中には新規システムだけではなく、保守の仕事があります。
ソースを見てみると、独自で作られたMVCモデルなどがあるのですが、コントローラ部分がswitch文の入れ子で数千行になっているような目を覆いたくるソースがあります。また、他のものも似たような感じのものが多数あるように感じます。
リフレクションを使ったり、ストラテジパターンなどを適用すれば、もっとスマートにかけるのにと思いながら、まぁ保守をするわけですが・・・
これは恐らく、初めのうちはシステムも小さく、まあ、これくらいの規模ならswich文でもそんなに問題にならないだろうという設計のもと、作られていたと思うのですが、段々とシステムが大きくなるにつれ、もしくは、色々な人が保守をすることにつれ、初めの設計(思想)とは全く異なるものになっているからではないかと思います。
自分で今まで書いてきた独自フレームワークも中々いけてるじゃんとか思いながら設計していたのですが(switch文とかは使いませんよ。)、あとあと、他の人が修正してけば、この思想もきっと壊れていくのでしょう。
そう考えたときに、独自フレームワークなどを書くのではなく、世の中に存在しているフレームワークを使うのが一番ベストな方法な気がしてきました。
結局、他の人が書いた独自フレームワークなどはその時しか使えないし、その設計を理解するのに時間がかかるし、あまりいいことはありません。
しかし、世の中の有名なフレームワークをを使っていれば、ネットを調べれば使い方もわかるし、他の場所でも身に着けた知識が無駄になることはありません。(フレームワークの開発がストップしない限り)何よりも、開発効率が上がりますしね!
今までは、もしもフレームワークの開発がストップしたら。。。と思いながら、怖くて手をなるべくださなかったのですが、それでも、独自フレームワークよりは大分いいのではないかという結論に至りました。
ざっと、自分が今PHPのフレームワークについて思っていることを書いてみました。
大手会社のシステムなら、独自のフレームワークはいいと思います。何かあっても資料もあるでしょうし、引き継ぎもあるでしょう。だけども、それ以外の場合は、あまり独自フレームワークを作らないほうが良いのではないでしょうか。そのあとの保守がとても大変になります。
自分勝手な考えをずらずらと書いてみましたが、このブログを読んだ方は、どう考えているでしょうか?できれば、皆様の意見もお聞かせください(^o^)
PHPプログラマ養成塾 第7回 画像処理
今回は第6回で作成した背景の上の文字を表示してみたいと思います。
課題1
画像サイズ100px X 100pxの画像を背景色は緑で
その上に”緑”という黒い文字が表示されるJpeg画像を作成してください。
課題2
基本は課題1と同じで、赤、黄色、青、ピンク、灰色用のJpeg画像を作成して、
一つの画面に全て表示してください。
課題3
以下のサイトからトランプ素材を入手してください。
http://blog-imgs-42-origin.fc2.com/p/i/p/piposozai/cards.png
この画像を使用して、指定したスートと数字を指定して一枚のトランプを表示する
関数を作成してください。
以上です。
課題3が少し難しいですが、頑張ってみてください!
今回は第6回で作成した背景の上の文字を表示してみたいと思います。
課題1
画像サイズ100px X 100pxの画像を背景色は緑で
その上に”緑”という黒い文字が表示されるJpeg画像を作成してください。
課題2
基本は課題1と同じで、赤、黄色、青、ピンク、灰色用のJpeg画像を作成して、
一つの画面に全て表示してください。
課題3
以下のサイトからトランプ素材を入手してください。
http://blog-imgs-42-origin.fc2.com/p/i/p/piposozai/cards.png
この画像を使用して、指定したスートと数字を指定して一枚のトランプを表示する
関数を作成してください。
以上です。
課題3が少し難しいですが、頑張ってみてください!
PHPプログラマ養成塾 第6回
今回は、画像作成を行いたいと思います。
課題1
画像サイズ100px X 100pxの画像を背景色は緑でJpeg画像を作成してください。
今回は少し難しいと思うので、一問だけです。
では、頑張ってください!!
今回は、画像作成を行いたいと思います。
課題1
画像サイズ100px X 100pxの画像を背景色は緑でJpeg画像を作成してください。
今回は少し難しいと思うので、一問だけです。
では、頑張ってください!!
PHPプログラマ養成塾 第5回おつかれさまでした!
では、PHPプログラマ養成塾 第5回の別解を行います。
課題1
bookMaster.txtファイルを読みこんで、一つの文字列として値を保存して、そのデータを表示してください。
//ファイル名
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
echo $data;
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題2
bookMaster.txtファカンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。イルを読みこんで、各行ごとに配列に入れて、入れたデータを表示してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//表示
foreach($datalist as $value)
{
print $value."<br>";
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題3
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//パース
$parseDataList = array();
foreach($datalist as $value)
{
$parseDataList[] = preg_split("/,/",$value);
}
//表示
foreach($parseDataList as $value)
{
foreach($value as $v)
{
print $v."<br>";
}
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題4
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。また、bookMaster.txtファイルは本番号(数値)、タイトル(文字列)、価格(数値)で保存されていますが、本当に数値や文字列になっているかのチェックを行ってください。例えば本番号に文字列が入っている場合などは、その時の行データを飛ばして処理してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//パース
$parseDataList = array();
foreach($datalist as $value)
{
$parseDataList[] = preg_split("/,/",$value);
}
//表示
foreach($parseDataList as $value)
{
//データチェック
$flag = true;
//本番号、タイトル、価格 : $value[0],$value[1],$value[2]
if(!ctype_digit($value[0]))
{
$flag = false;
}
else if(gettype($value[1]) != "string")
{
$flag = false;
}
else if(!ctype_digit($value[2]))
{
$flag = false;
}
if($flag)
{
echo "$value[0]<br>$value[1]<br>$value[2]<br>";
}
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
以上です。
では、次回の課題に進みましょう
では、PHPプログラマ養成塾 第5回の別解を行います。
課題1
bookMaster.txtファイルを読みこんで、一つの文字列として値を保存して、そのデータを表示してください。
//ファイル名
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
echo $data;
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題2
bookMaster.txtファカンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。イルを読みこんで、各行ごとに配列に入れて、入れたデータを表示してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//表示
foreach($datalist as $value)
{
print $value."<br>";
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題3
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//パース
$parseDataList = array();
foreach($datalist as $value)
{
$parseDataList[] = preg_split("/,/",$value);
}
//表示
foreach($parseDataList as $value)
{
foreach($value as $v)
{
print $v."<br>";
}
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
課題4
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。また、bookMaster.txtファイルは本番号(数値)、タイトル(文字列)、価格(数値)で保存されていますが、本当に数値や文字列になっているかのチェックを行ってください。例えば本番号に文字列が入っている場合などは、その時の行データを飛ばして処理してください。
//ファイル名代入
$bookMaster = "bookMaster.txt";
//bookMasterファイルの読み込み
$data = LoadFile($bookMaster);
$datalist = preg_split("/\n/",$data);
//パース
$parseDataList = array();
foreach($datalist as $value)
{
$parseDataList[] = preg_split("/,/",$value);
}
//表示
foreach($parseDataList as $value)
{
//データチェック
$flag = true;
//本番号、タイトル、価格 : $value[0],$value[1],$value[2]
if(!ctype_digit($value[0]))
{
$flag = false;
}
else if(gettype($value[1]) != "string")
{
$flag = false;
}
else if(!ctype_digit($value[2]))
{
$flag = false;
}
if($flag)
{
echo "$value[0]<br>$value[1]<br>$value[2]<br>";
}
}
function LoadFile($fileName)
{
$result = "";
//ファイルがある場合
if(file_exists($fileName))
{
$fp = fopen($fileName,"r");
$result = fread($fp,filesize($fileName));
fclose($fp);
}
return $result;
}
以上です。
では、次回の課題に進みましょう
PHPプログラマ養成塾 第5回を始めます。
今回もファイル処理についての課題を出したいと思います。
もう少しファイルデータの持ち方について学びたいと思います。
今回の課題も以下のデータを使用したいと思います。
以下のデータをbookMaster.txtファイルとして保存しておいてください。
1,PHP入門1,1001
2,PHP入門2,1002
3,PHP入門3,1003
4,PHP入門4,1004
5,PHP入門5,1005
6,PHP入門6,1006
7,PHP入門7,1007
8,PHP入門8,1008
9,PHP入門9,1009
課題1
bookMaster.txtファイルを読みこんで、一つの文字列として値を保存して、そのデータを表示してください。
課題2
bookMaster.txtファイルを読みこんで、各行ごとに配列に入れて、入れたデータを表示してください。
課題3
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。
課題4
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。また、bookMaster.txtファイルは本番号(数値)、タイトル(文字列)、価格(数値)で保存されていますが、本当に数値や文字列になっているかのチェックを行ってください。例えば本番号に文字列が入っている場合などは、その時の行データを飛ばして処理してください。
以上です。
課題4が少し長くなりましたが、頑張ってみてください!!
実際には、こういったデータはクラスとして保持したほうがデータを使いやすいですが、クラスについては、まだ書いてないので、今度クラスを書いてやってみましょう!!
今回もファイル処理についての課題を出したいと思います。
もう少しファイルデータの持ち方について学びたいと思います。
今回の課題も以下のデータを使用したいと思います。
以下のデータをbookMaster.txtファイルとして保存しておいてください。
1,PHP入門1,1001
2,PHP入門2,1002
3,PHP入門3,1003
4,PHP入門4,1004
5,PHP入門5,1005
6,PHP入門6,1006
7,PHP入門7,1007
8,PHP入門8,1008
9,PHP入門9,1009
課題1
bookMaster.txtファイルを読みこんで、一つの文字列として値を保存して、そのデータを表示してください。
課題2
bookMaster.txtファイルを読みこんで、各行ごとに配列に入れて、入れたデータを表示してください。
課題3
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。
課題4
bookMaster.txtファイルを読みこんで、カンマ区切りでデータを分割して、そのデータを配列に入れて、入れたデータを表示してください。また、bookMaster.txtファイルは本番号(数値)、タイトル(文字列)、価格(数値)で保存されていますが、本当に数値や文字列になっているかのチェックを行ってください。例えば本番号に文字列が入っている場合などは、その時の行データを飛ばして処理してください。
以上です。
課題4が少し長くなりましたが、頑張ってみてください!!
実際には、こういったデータはクラスとして保持したほうがデータを使いやすいですが、クラスについては、まだ書いてないので、今度クラスを書いてやってみましょう!!
