tackphpチュートリアル

自作PHPフレームワーク「tackphp」のチュートリアルです。

tackphpはgithubに公開されています。https://github.com/tatsuyau/tackphp


今回はチュートリアルとして、Bookmarkアプリケーションを作りたいと思います。


1:データベースの用意
今回作成するBookmarkアプリのテーブルをMySQLに作成しましょう。
カラムは、id, title, url, created, の4カラムでOKです。

CREATE TABLE IF NOT EXISTS `bookmark` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `url` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;


2:データベースに接続するアカウント
tackphp/database.phpを開いてください。接続アカウントを記述してください。

class database{
        public $schema = array(
                'default' => array(
                        'host' => 'localhost',
                        'user' => 'user',
                        'password' => 'user',
                        'schema' => 'databaseName',
                        'encoding' => 'utf8'
                        ),


3:controllerの作成
tackphp/controller内にBookmarkController.phpを作成します。

<?php
class BookmarkController extends Controller{
        public function __construct(){
                $this->bookmark = new Bookmark();
        }

        public function index(){
                $title = 'my bookmark list';
                $datas = $this->bookmark->getBookmark();
                require_once($this->layout);
        }

        public function add(){
                $this->bookmark->setBookmark($this->_request);
                header('Location: ./bookmark');
        }
}


4:modelの作成
tackphp/model内にBookmark.phpを作成します。

<?php
class Bookmark extends Model{
        public function __construct(){
                $this->db = new database();
        }

        public function getBookmark(){
                $sql = 'SELECT * FROM bookmark ';
                $this->db->execQuery($sql);
                $row = $this->db->fetchAll();
                return $row;
        }

        public function setBookmark($req){
                $sql = 'INSERT INTO bookmark (title, url, created) ';
                $sql .= 'VALUES (:title, :url, :created) ';

                $hashParam = array(
                        'title' => $req['title'],
                        'url' => $req['url'],
                        'created' => date('Y-m-d H:i:s')
                        );

                return $this->db->execQuery($sql,$hashParam);
        }
}


5:viewの作成
tackphp/view内にbookmark_index.tplを作成します。

<form action="bookmark_add" method="post">
title:<input type="text" name="title"><br />
url:<input type="text" name="url"><br />
<input type="submit" value="add">
</form>

<h2><?php echo $title; ?></h2>
<?php if($datas): ?>
<ul>

<?php foreach($datas as $data): ?>
<li><a href="<?php echo $data['url']; ?>"><?php echo $data['title']; ?></a></li>
<?php endforeach; ?>

</ul>
<?php endif; ?>


6:サイトにアクセスします
http://yourdomain/tackphp/bookmark にアクセスしてください。Bookmarkアプリケーションが作成できているでしょうか?


7:設定を変更します
http://yourdomain/tackphp で"bookmark"を省いたURLでアクセスできるようにします。
tackphp/config.phpを開いてください。

/*デフォルトのcontrollerとaction*/
define('DEFAULT_CONTROLLER','bookmark');
define('DEFAULT_ACTION','index');

上記に書き換えます。
http://yourdomain/tackphpでbookmarkアプリケーションにアクセスできれば成功です。


今回のチュートリアルの解説は後ほど。疲れたので。。。

このブログ記事について

このページは、tatsuyaが2011年9月 9日 01:37に書いたブログ記事です。

ひとつ前のブログ記事は「自作PHPフレームワーク「tackphp」を公開しました」です。

次のブログ記事は「[余談]なぜ開発するのか」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。