進行中 自作簡単なフレームワーク(Model、インジェクション、トランザクション)
前回書いた上の記事から自作のフレームワーク作りをちょこちょこ進めています(意味があると聞かれたら微妙ですが......)
こちらの記事を読んだことある人はいると思いますが
私も基本からやろうということでやっています
今すぐ辞めてほしいRuby on Rails、CakePHPを勉強しています
こちらの記事を読んだことある人はいると思いますが
私も基本からやろうということでやっています
今すぐ辞めてほしいRuby on Rails、CakePHPを勉強しています
参考にしているのがこちらブログで
PHP10行で作る超シンプルフレームワーク
index.phpをコントローラーにして.htaccessファイルを使いアクセスをindex.phpに集める処理+アドレスの後の / 区切りをパース(受け取って処理する)のが正直わかってない状態です
こうゆうの localhost:8000/posts/3
Laravel、Railsなど多くのフレームワークは普通な書き方で読み取ってくれますが
いわゆるGET方式の送信を受け取るというPHPの初歩的な部分がうまく理解できてないようです
ちょっと話が変わりますが こちらの記事で紹介した 独習PHPを読み込みながらやっています
とても良い本だと思うので初心者向けの入門本をした後にPHPする人は買うべきだと思い是非本屋で立ち読みしてみてください
自作フレームワークをしていてもう一つ力を入れているというか
目標としてやっていることがあります
一番上のリンク先にありますが
コントローラー、モデルの自作と読み込みです
簡単にいうとモデルでDB接続をします(SQLインジェクションとかセキュリティも考えながら)
RubyとPHPを平行でやっていて
PHPはPDOを使い独自のクラスを作成して
<?php
class TopicData {
protected $connection = null;
public function connect()
{
$this->connection = new PDO("mysql:host=localhost;dbname=suggestotron", "root", null);
}
public function getAllTopics()
{
$query = $this->connection->prepare("SELECT * FROM topics");
$query->execute();
return $query;
}
}
?>
Rubyの方はgem ' mysql2 'を使ってDBをクラス+defで使えるように考えています
イメージとしてはこんな感じ
RubyはSinatraを使うことでWebページに出力したりかなりRailsに近くなります
これ自体はフレームワークがやっているのを自作しているので理解を深めるのは良いと思いますが少し、いや、結構?遠回りかもしれませんが楽しんでやっています
トランザクション処理も加えていくつもりです
改めてこれらをフレームワークがしてくれていることに感動しある程度満足したらフレームワークをさらに深めていきたいですね
class Db
def getAllTopics
client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
getAll = client.query('SELECT * from posts;')
getAll.each do |row|
puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['title']]
end
end
end
RubyはSinatraを使うことでWebページに出力したりかなりRailsに近くなります
これ自体はフレームワークがやっているのを自作しているので理解を深めるのは良いと思いますが少し、いや、結構?遠回りかもしれませんが楽しんでやっています
トランザクション処理も加えていくつもりです
改めてこれらをフレームワークがしてくれていることに感動しある程度満足したらフレームワークをさらに深めていきたいですね
コメント
コメントを投稿