忍者ブログ
勉強用に使いたいと思います。三日坊主の可能性大
[1]  [2
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

お久しぶりにSymfony。

アルバイトで実際にSymfonyを使ってイロイロしているわけですが、
僕はここが一番時間くったかもしれません。
どこで、何をしているのか。
Jobeetを見てもイマイチわかりませんよね。
やっぱりそこらへんは英語直訳な文章よりも、しっかり日本人が書いた書籍を読むとわかりやすいです。

今回はページの作成。
Hello Worldとほぼ同じなんですけどね・・・

では、いってみましょー。

----キリトリ----
プロジェクトルートに移動
$cd /home/chiro/sf14/



1.モジュール生成
Page・・・ページを表示
Inquiry・・・お問い合わせ
という定義で。
$php symfony generate:module frontend Page
$php symfony generate:module frontend Inquiry




2.アクションの実装
$vim apps/frontend/modules/Page/actions/actions.class.php
以下のメソッドを追加
public function executeShow(sfWebRequest $request)
 {
   $this->page = PageTable::getInstance()->findOneBySlug('top');
 }




3.ページの実装
$vim apps/frontend/modules/Page/templates/ShowSuccess.php
以下を書き込んで新規作成
<br>

 <h2>
   このページのタイトルは、「
   <?php  echo $page->getTitle() ?>
   」です。
 </h2>




4.結果確認
http://172.16.19.0:8080/frontend_dev.php/Page/Show
こんな感じになってればok
70776423.jpeg
PR
最近は三日坊主じゃないです!w
結構マジメに勉強している(風)ですよ。むふふ。

今回はデータベースの設定について。
使用するのはこちら。

データベース・・・MySQL
ORM・・・Doctrine

Webページのデータを挿入するためのテーブルを作成します。
カラムは以下の通り。

title・・・ページタイトル
body・・・本文
category・・・カテゴリ(news, about usなど)

では、いってみましょー!


----キリトリ----
プロジェクトルートに移動
$cd /home/chiro/sf14



1.MySQLの設定
Ubuntuインストール時にLAMPサーバを構築すると、ルートにパスワードが設定されないので、パスワードを設定する。
$sudo dpkg-reconfigure mysql-server-5.5
MySQLにログインできるか確認
$mysql -uroot -ppassword
mysql>exit;



2.Symfonyデータベースの設定
$vim config/databases.yml
attributesを追加し、MySQLのパスワードを書く
 all:
   doctrine:
     class: sfDoctrineDatabase
     param:
       dsn:      mysql:host=localhost;dbname=sf14
       username: root
       password: password
       attributes:
         default_table_charset:  utf8
         default_table_collate:  utf8_unicode_ci




3.テーブルの作成
$vim config/doctrine/schema.yml
以下を追加
 Page:
   actAs:
     Timestampable:  ~
     Sluggable:      ~
   columns:
     title:
       type:     string(100)
       notnull:  true
       default:  ''
     body:
       type:     clob
       notnull:  true
       default:  ''
     category:
       type:     string(32)
       notnull:  true
       default:  ''




4.データベースと各種ツールの生成
コマンドを見るとわかるとおり、データベース・モデル・フォーム・フィルター・SQL文を生成する。
$php symfony doctrine:build-db
$php symfony doctrine:build-model
$php symfony doctrine:build-forms
$php symfony doctrine:build-filters
$php symfony doctrine:build-sql
$php symfony doctrine:insert-sql

上手くいっているか確認
$mysql -uroot -ppassword
mysql>USE sf14
mysql>DESCRIBE page;

こんな感じで作れていればok
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| title      | varchar(100) | NO   |     |         |                |
| body       | longtext     | NO   |     | NULL    |                |
| category   | varchar(32)  | NO   |     |         |                |
| created_at | datetime     | NO   |     | NULL    |                |
| updated_at | datetime     | NO   |     | NULL    |                |
| slug       | varchar(255) | YES  | UNI | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
mysql>exit;



5.初期データの挿入
初期データの設定
$vim data/fixtures/fixtures.yml
以下を加える(長いので途中省略)
Page:
  TopPage:
     title:       トップページ
     slug:        top
     category:    ~
     body:        トップページのコンテンツです。
   AboutPage:
     title:       Symfony楽団について
     slug:        about
     category:    ~
     body:        Symfony楽団の紹介ページです。
・・・

データ挿入!
$php symfony doctrine:data-load
できてるか確認
$mysql -uroot -pwintermine
mysql>USE sf14
mysql>SELECT title, created_at FROM page;

こんな感じになればok!
+---------------------------------------------------------------------+---------------------+
| title                                                               | created_at          |
+---------------------------------------------------------------------+---------------------+
| トップページ                                                        | 2012-06-22 22:18:23 |
| Symfony楽団について                                                 | 2012-06-22 22:18:23 |
| メンバー募集                                                        | 2012-06-22 22:18:23 |
| Symfony楽団のホームページがオープンしました                         | 2010-10-15 00:00:00 |
| 2010年定期演奏会のご案内                                            | 2010-11-15 00:00:00 |
| Symfony楽団と一緒に新年を迎えよう!                                 | 2010-12-06 00:00:00 |
| 2011年の活動に向けて、メンバーを募集しています                      | 2010-12-20 00:00:00 |
| 2010年の定期演奏会が無事終了しました                                | 2010-12-21 00:00:00 |
+---------------------------------------------------------------------+---------------------+

うーん、このブログでのデータベースの表示が上手くいきませんね^^;

最近、とっても忙しいです。
メイプル、ほぼ一週間ログインしてないなー。
さて、コメント返信は後回しに、少なめですが先に記事をup!


今回はプログラミング最初の一歩といえばこれ。「Hellow World」
でも、意味わかんないですよね。別に他の言葉だっていいじゃんね。
あと、hogeって言葉も嫌い。なんとなく。


----キリトリ----
とりあえずプロジェクトルートに移動(次回からこれは省略するかも)
$cd /home/chiro/sf14

1.モジュール作成
Helloモジュールの作成
$php symfony generate:module frontend Hello
できたかどうか確認
http://172.16.19.0:8080/frontend_dev.php/Hello


前回は画像使わなかったけど、こんな画面がでればok




2.アクションとテンプレートの作成
まずはアクションの作成から
$vim apps/frontend/modules/Hello/actions/actions.class.php
以下をクラス内に付け足す
  public function executeWorld()
  {
 
  }

次に表示する内容(phpファイル)を書く
$vim apps/frontend/modules/Hello/templates/worldSuccess.php
元からはないので、新規ファイルとして作る。
<h2>
   Hellow, World!
   <?php echo date('Y/m/d') ?>
 </h2>

できてるか確認
http://172.16.19.0:8080/frontend_dev.php/Hello/world
Hellow World!と今日の日付が書かれていればok
Calendar
03 2026/04 05
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Profile
HN:
ちろ
性別:
非公開
自己紹介:
お先まっ暗な大学生
Search
No good words
http
www.
co.jp
.com
忍者ブログ [PR]