2012年05月07日
講義058日目
------------------------------1H------------------------------
★xamppでsymfonyを使う
●symfony用にプロジェクトを作成
・www.shonanbbs.comをeclipseで作成
・コマンドプロンプトで以下のコマンドを打つ
symfony init-pro www.shonanbbs.com
symfony init-app front
symfony init-mod front default
・httpd-vhosts.confの編集
www.shonanbbs.com/web/にパスを通す
<VirtualHost *:80>
DocumentRoot C:\pleiades\xampp\htdocs\www.shonanbbs.com/web
ServerName www.shonanbbs.com/web/
<Directory "C:\pleiades\xampp\htdocs\www.shonanbbs.com/web">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
・hostsファイルの編集
SwitchHostsで編集
www.shonanbbs.com
●symfonyの復習
・web
ブラウザからのリクエストを受け取る
外部からのアクセスは必ずここを通る
画像、css、jsなどのクライアントで動作するファイルは全てここに
フロントコントローラが置かれる
index.php
front_dev.php
/web→index.php→apps→目的の処理へ
------------------------------2H------------------------------
★symfony
●symfonyの復習
・apps
/apps→アプリケーション名/front→/modules→モジュール名/default→/actions(ロジック)
/templates→layout.php /templates(テンプレート)
ロジック
actions.class.php
↑内に作成するメソッド、「executeIndex」等(execute○○○と名づける)をアクションという
テンプレート
~success.phpと名づける
例)executeIndexが存在してるとき
テンプレートはindexSuccess.phpを作成する
・アプリケーションとモジュールの違い
レイアウトが同じならモジュールで別の内容を作る
・htmlなどはtemplates.php →内容
layout.php →レイアウト
・urlの基本形
http://www.shonanbbs.com/index.php/default/index
/フロントコントローラ(アプリケーション指定)/モジュール名/アクション名
を省略してる
・url省略の方法
フロントコントローラは「.htaccess」で省略
・モジュール名、アクション名はアプリケーション下の「config/routing.yml」という設定ファイルで省略
------------------------------3H------------------------------
★VMware再インストール
------------------------------4H------------------------------
★symfony
●appsとmoduleを作る
sftestにappとmoduleを追加する
最初に打ったコマンドにより、アプリケーションはfront、モジュールはdefaultで作られてる
・アプリケーションの追加
symfony init-app アプリケーション名
・モジュールの追加
symfony init-mod アプリケーション名 default(モジュール名)
・新しいアプリケーション作成で最初に作るモジュール名はdefaultにする
------------------------------5H------------------------------
★symfony
●shonanbbsをsymfonyに移行する
・sf.shonanbbs.comを作成
[nishi@localhost ~]$ mkdir sf.shonanbbs.com
・プロジェクトの作成
[nishi@localhost sf.shonanbbs.com]$ symfony init-pro sf.shonanbbs.com
・アプリケーションの作成
[nishi@localhost sf.shonanbbs.com]$ symfony init-mod front default
------------------------------6H------------------------------
★symfony
●sf.shonanbbs.comにパスを通す
<VirtualHost *:80>
ServerName sf.shonanbbs.com
DocumentRoot /home/nishi/sf.shonanbbs.com/web
<Directory "/home/nishi/sf.shonanbbs.com/web">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
・apatch再起動
[root@localhost ~]# /etc/init.d/httpd restart
・hostsファイルの編集
SwitchHostsで編集
sf.shonanbbs.com
VMware内CentOSのサーバアドレス
●eclipseでsf.shonanbbs.comを編集
・action.class.php
public function executeIndex()
{
return sfView::SUCCESS;
}
・indexSuccess.php
<h1>sf.shonanのtest</h1>
とか表示テスト用に何かをhtmlで書く
●データベースの移植
・FFFTPでデータベース移行
-----------------------------memo------------------------------
symfonyのMVCを少し理解した
2012年5月7日月曜日
2012年4月30日月曜日
2012年04月30日 講義057日目
2012年04月30日
講義057日目
------------------------------1H------------------------------
★VMware
●OSの消し方
・ユーザのドキュメントにあるMy Virtual Machinesフォルダ内の目的のOS名の付いたフォルダを削除する
・VMware
●時間の同期
・自動同期の設定
[root@localhost ~]# ls /var
ntpフォルダがあるか確認
・なければ作る
[root@localhost ~]# mkdir /var/ntp
・手動で同期
[root@localhost ~]# /usr/sbin/ntpdate ntp.jst.mfeed.ad.jp
30 Apr 10:28:53 ntpdate[6260]: step time server 210.173.160.57 offset 362134.230662 sec
[root@localhost ~]# date
2012年 4月 30日 月曜日 10:29:00 JST
・[root@localhost ~]# vi /var/ntp/ntpdata.sh
#!/bin/sh
/usr/sbin/ntpdata ntp.jst.mfeed.ad.jp > /dev/null
> /dev/null は実行結果を画面に出さずに消す命令をリダイレクトしてる
・[root@localhost ~]# crontab -l
定期的に実行させる -lでcronのリストを表示
#*/1 * * * * /bin/bash /home/nishi/datemake.sh
・[root@localhost ~]# crontab -e
viで開かれるので
*/5 * * * * /var/ntp/ntpdate.sh
の記述を追加
5分ごと 毎時 毎日 毎月 毎曜日「/var/ntp/ntpdate.sh」を動かすと言う意味
VMの性質上5分ごとに時間あわせをしてる、普通のサーバは一日一回とかでもいいんじゃね?的な
・ファイル名を間違えたらmvコマンドで書き換える
[root@localhost ~]# ls -l /var/ntp
合計 4
-rw-r--r-- 1 root root 60 4月 30 10:42 ntpdata.sh
[root@localhost ~]# mv /var/ntp/ntpdata.sh /var/ntp/ntpdate.sh
・[root@localhost ~]# chmod 700 /var/ntp/ntpdate.sh
書き込み権限を変更
・[root@localhost ~]# view /var/spool/mail/root
You have mail in /var/spool/mail/root
メールを見ることができる
:qで抜ける
------------------------------2H------------------------------
★VMware
●phpmyadminをインストール
・FFFTPでサーバへ移動する
zipファイルをドラック&ドロップ
・ユーザでサーバにアクセス
・[nishi@localhost ~]$ unzip phpMyAdmin-3.5.0-all-languages.zip
unzipコマンドで解凍する
・[nishi@localhost ~]$ mv phpMyAdmin-3.5.0-all-languages phpmyadmin
短い名前にリネームする
・
vhostに登録
・8yy
8行コピー(ヤンク)する
・p
ペーストされる
・phpmyadmin用に書き換える
<VirtualHost *:80>
ServerName phpmyadmin.com
DocumentRoot /home/nishi/phpmyadmin
<Directory "/home/nishi/phpmyadmin">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
・hostsファイルの書き換え
SwitchHostでphpmyadmin.comを作成
・[root@localhost ~]# /etc/init.d/httpd restart
再起動
httpd を停止中: [ OK ]
httpd を起動中:
アパッチを再起動させた
●eclipseの再設定の方法
リモート接続のエクスプローラで該当の接続を右クリックして、
「パスワードのクリア」で再度ID/passが入力できる
プロパティから接続先IPアドレスの変更ができる
root内のファイルをいじるのは危険なのでマイ・ホームを使う
------------------------------3H------------------------------
★symfony
●symfonyコマンド
基本symfonyコマンドは下にsymfonyで作ったフォルダが存在するフォルダに移動してで実行する
・symfony cc
キャッシュのクリアを行う。設置ファイル変更後によく実施する
・symfony fix-perms
プロジェクト下のアクセス制限を正常にする
●symfonyプロジェクトを作成
・外部からのアクセスを受け取るディレクトリ
プロジェクト名/web
symfonyでは上記の配下がURLでのルートパスになる
そのため、vhostのDocumentoRoot等はwebを指定する
・追加する
<VirtualHost *:80>
ServerName sftest.com
DocumentRoot /home/nishi/sftest/web
<Directory "/home/nishi/sftest/web">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
・[root@localhost ~]# vi /etc/httpd/conf.d/httpd-vhost.conf
[root@localhost ~]# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
・SwitchHostを編集する
sftest.comを登録する
------------------------------4H------------------------------
★symfony
●アプリケーションを作成
・symfony init-app front
アプリケーションを作成するsymfonyコマンド
frontアプリケーションを作成する
アプリケーション名は任意で変えられるが、一番最初に作成するアプリケーションはfrontにしておくと良い
●モジュールを作成
・symfony init-module front default
frontアプリケーション下にdefaultモジュールを作成する
モジュール名も任意に変えられるが、
アプリケーション下に最初に作成するモジュールはdefaultが良い
●symfonyの構成を作成する基本的な流れ
・symfony init-pro
プロジェクトを作る
・symfony init-app front
アプリケーションを作る
・symfony init-mod front default
モジュールを作る
●indexSuccess.php
/apps/front/modules/default/templates/indexSuccess.php
「templates」ディレクトリの下のファイルはView用
htmlのタグや文言が書かれる
●actions/actions.class.php
・「actions/actions.class.php」には
テンプレートに渡すデータやロジックが書かれる
smartyでのindex.phpのような場所になる
class defaultActions extends sfActions
{
/**
* Executes index action
*
*/
public function executeIndex()
{
return sfView::SUCCESS; ←追加
//$this->forward('default', 'module'); ←コメントアウト
}
}
●inputFormSuccess.phpの作成
・actions/actions.class.phpに追加
public function executeInputForm()
{
return sfView::SUCCESS;
}
・/templates/にinputFormSuccess.phpを作成
何か記述してみて、http://sftest.com/default/inputForm/で表示してみるテスト
●executeIndex メソッド、およびindexSuccess.phpには、トップp-時の情報が書かれるのが基本
●アクション
executeIndex:indexアクション
executeInputForm:inputFormアクション
sftestプロジェクトのトップページは
「frontアプリケーションのdefaultモジュールのindexアクション」です
------------------------------5H------------------------------
★symfony
●テンプレート側へのデータのアサイン
$this->変数名 でアサインし。テンプレート側では$変数名で使える
●GETやPOSTで送られてきたデータを受け取るには
仮に「id」という添え字が付けられたデータを受け取りたいなら
$hoge = $this->getRequestParameter("id");
・複数の値を取得したい場合は/で区切って表示
今までのGETでの渡し方
?id=あああ&name=いいい
symfonyでのPOST、GETの渡し方
id/あああ/name/いいい
echo $this->getRequestParameter("id");
echo $this->getRequestParameter("name");
●ページのソースを見てみる
・layout.php
metaタグやbodyタグ作ってくれているファイル
-----------------------------memo------------------------------
講義057日目
------------------------------1H------------------------------
★VMware
●OSの消し方
・ユーザのドキュメントにあるMy Virtual Machinesフォルダ内の目的のOS名の付いたフォルダを削除する
・VMware
●時間の同期
・自動同期の設定
[root@localhost ~]# ls /var
ntpフォルダがあるか確認
・なければ作る
[root@localhost ~]# mkdir /var/ntp
・手動で同期
[root@localhost ~]# /usr/sbin/ntpdate ntp.jst.mfeed.ad.jp
30 Apr 10:28:53 ntpdate[6260]: step time server 210.173.160.57 offset 362134.230662 sec
[root@localhost ~]# date
2012年 4月 30日 月曜日 10:29:00 JST
・[root@localhost ~]# vi /var/ntp/ntpdata.sh
#!/bin/sh
/usr/sbin/ntpdata ntp.jst.mfeed.ad.jp > /dev/null
> /dev/null は実行結果を画面に出さずに消す命令をリダイレクトしてる
・[root@localhost ~]# crontab -l
定期的に実行させる -lでcronのリストを表示
#*/1 * * * * /bin/bash /home/nishi/datemake.sh
・[root@localhost ~]# crontab -e
viで開かれるので
*/5 * * * * /var/ntp/ntpdate.sh
の記述を追加
5分ごと 毎時 毎日 毎月 毎曜日「/var/ntp/ntpdate.sh」を動かすと言う意味
VMの性質上5分ごとに時間あわせをしてる、普通のサーバは一日一回とかでもいいんじゃね?的な
・ファイル名を間違えたらmvコマンドで書き換える
[root@localhost ~]# ls -l /var/ntp
合計 4
-rw-r--r-- 1 root root 60 4月 30 10:42 ntpdata.sh
[root@localhost ~]# mv /var/ntp/ntpdata.sh /var/ntp/ntpdate.sh
・[root@localhost ~]# chmod 700 /var/ntp/ntpdate.sh
書き込み権限を変更
・[root@localhost ~]# view /var/spool/mail/root
You have mail in /var/spool/mail/root
メールを見ることができる
:qで抜ける
------------------------------2H------------------------------
★VMware
●phpmyadminをインストール
・FFFTPでサーバへ移動する
zipファイルをドラック&ドロップ
・ユーザでサーバにアクセス
・[nishi@localhost ~]$ unzip phpMyAdmin-3.5.0-all-languages.zip
unzipコマンドで解凍する
・[nishi@localhost ~]$ mv phpMyAdmin-3.5.0-all-languages phpmyadmin
短い名前にリネームする
・
vhostに登録
・8yy
8行コピー(ヤンク)する
・p
ペーストされる
・phpmyadmin用に書き換える
<VirtualHost *:80>
ServerName phpmyadmin.com
DocumentRoot /home/nishi/phpmyadmin
<Directory "/home/nishi/phpmyadmin">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
・hostsファイルの書き換え
SwitchHostでphpmyadmin.comを作成
・[root@localhost ~]# /etc/init.d/httpd restart
再起動
httpd を停止中: [ OK ]
httpd を起動中:
アパッチを再起動させた
●eclipseの再設定の方法
リモート接続のエクスプローラで該当の接続を右クリックして、
「パスワードのクリア」で再度ID/passが入力できる
プロパティから接続先IPアドレスの変更ができる
root内のファイルをいじるのは危険なのでマイ・ホームを使う
------------------------------3H------------------------------
★symfony
●symfonyコマンド
基本symfonyコマンドは下にsymfonyで作ったフォルダが存在するフォルダに移動してで実行する
・symfony cc
キャッシュのクリアを行う。設置ファイル変更後によく実施する
・symfony fix-perms
プロジェクト下のアクセス制限を正常にする
●symfonyプロジェクトを作成
・外部からのアクセスを受け取るディレクトリ
プロジェクト名/web
symfonyでは上記の配下がURLでのルートパスになる
そのため、vhostのDocumentoRoot等はwebを指定する
・追加する
<VirtualHost *:80>
ServerName sftest.com
DocumentRoot /home/nishi/sftest/web
<Directory "/home/nishi/sftest/web">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
・[root@localhost ~]# vi /etc/httpd/conf.d/httpd-vhost.conf
[root@localhost ~]# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
・SwitchHostを編集する
sftest.comを登録する
------------------------------4H------------------------------
★symfony
●アプリケーションを作成
・symfony init-app front
アプリケーションを作成するsymfonyコマンド
frontアプリケーションを作成する
アプリケーション名は任意で変えられるが、一番最初に作成するアプリケーションはfrontにしておくと良い
●モジュールを作成
・symfony init-module front default
frontアプリケーション下にdefaultモジュールを作成する
モジュール名も任意に変えられるが、
アプリケーション下に最初に作成するモジュールはdefaultが良い
●symfonyの構成を作成する基本的な流れ
・symfony init-pro
プロジェクトを作る
・symfony init-app front
アプリケーションを作る
・symfony init-mod front default
モジュールを作る
●indexSuccess.php
/apps/front/modules/default/templates/indexSuccess.php
「templates」ディレクトリの下のファイルはView用
htmlのタグや文言が書かれる
●actions/actions.class.php
・「actions/actions.class.php」には
テンプレートに渡すデータやロジックが書かれる
smartyでのindex.phpのような場所になる
class defaultActions extends sfActions
{
/**
* Executes index action
*
*/
public function executeIndex()
{
return sfView::SUCCESS; ←追加
//$this->forward('default', 'module'); ←コメントアウト
}
}
●inputFormSuccess.phpの作成
・actions/actions.class.phpに追加
public function executeInputForm()
{
return sfView::SUCCESS;
}
・/templates/にinputFormSuccess.phpを作成
何か記述してみて、http://sftest.com/default/inputForm/で表示してみるテスト
●executeIndex メソッド、およびindexSuccess.phpには、トップp-時の情報が書かれるのが基本
●アクション
executeIndex:indexアクション
executeInputForm:inputFormアクション
sftestプロジェクトのトップページは
「frontアプリケーションのdefaultモジュールのindexアクション」です
------------------------------5H------------------------------
★symfony
●テンプレート側へのデータのアサイン
$this->変数名 でアサインし。テンプレート側では$変数名で使える
●GETやPOSTで送られてきたデータを受け取るには
仮に「id」という添え字が付けられたデータを受け取りたいなら
$hoge = $this->getRequestParameter("id");
・複数の値を取得したい場合は/で区切って表示
今までのGETでの渡し方
?id=あああ&name=いいい
symfonyでのPOST、GETの渡し方
id/あああ/name/いいい
echo $this->getRequestParameter("id");
echo $this->getRequestParameter("name");
●ページのソースを見てみる
・layout.php
metaタグやbodyタグ作ってくれているファイル
-----------------------------memo------------------------------
登録:
投稿 (Atom)