しのさん協力■sfPageFlowを使っての新規作成■
■PROJECT作成「プロジェクト名」
一般ユーザでログインし以下を入力
mkdir プロジェクト名
cd プロジェクト名
symfony init-project プロジェクト名
■Application作成
「front」
「backend」
symfony init-app front
symfony init-app backend
■apacheの設定を変更
suでrootへ変更。
/etc/httpd/conf/httpd.confに以下を記述
vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName www.プロジェクト名(任意).jp
DocumentRoot /home/ユーザー名/プロジェクト名/web
<Directory "/home/ユーザー名/プロジェクト名/web">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
■5.Apache再起動
/etc/init.d/httpd restart
実行
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
----------------------------------------
■C:\Windows\System32\drivers\etc\hostsに
127.0.0.1(サーバのIP) www.shonanbbs.com
192.168.0.128 www.プロジェクト名.jp
192.168.0.128 www.プロジェクト名.jp 表示を確認。
----------------------------------------
■symfony設定ファイルのシンボリックリンク作成
cd /home/ユーザー名/プロジェクト名/web/
ln -s /usr/share/pear/data/symfony/web/sf ./sf
◆DB/カラム作成
mysql -u rootで入って作成
CREATE DATABASE enojo;
■MySQLユーザーを作成して権限付与
GRANT ALL ON DB名.* TO ユーザー名@"localhost" IDENTIFIED BY "password";
flush privileges;
◆テーブル作成
■テーブル作成
●member
CREATE TABLE member(id int not null auto_increment primary key);
ALTER TABLE member ADD comment_id int not null;
ALTER TABLE member ADD sei varchar(255);
ALTER TABLE member ADD mei varchar(255);
ALTER TABLE member ADD sei_kana varchar(255);
ALTER TABLE member ADD mei_kana varchar(255);
ALTER TABLE member ADD nickname varchar(255);
ALTER TABLE member ADD pass text;
ALTER TABLE member ADD photo1 text;
ALTER TABLE member ADD gender tinyint(1);
ALTER TABLE member ADD zip_code int(7);
ALTER TABLE member ADD pref tinyint(2);
ALTER TABLE member ADD address1 varchar(255);
ALTER TABLE member ADD address2 varchar(255);
ALTER TABLE member ADD address3 varchar(255);
ALTER TABLE member ADD tel varchar(11);
ALTER TABLE member ADD email varchar(255);
ALTER TABLE member ADD note text;
ALTER TABLE member ADD update_at datetime;
ALTER TABLE member ADD create_at datetime;
ALTER TABLE member ADD del_flg tinyint(1);
●reply
create table reply(id int not null auto_increment primary key);
ALTER TABLE reply ADD comment_id int not null;
ALTER TABLE reply ADD name varchar(255);
ALTER TABLE reply ADD content varchar(255);
ALTER TABLE reply ADD photo1 text;
ALTER TABLE reply ADD photo2 text;
ALTER TABLE reply ADD email varchar(255);
ALTER TABLE reply ADD reply_cnt int;
ALTER TABLE reply ADD create_at datetime;
ALTER TABLE reply ADD del_flg tinyint(1);
●comment
create table comment(id int not null auto_increment primary key);
ALTER TABLE comment ADD comment_id int not null;
ALTER TABLE comment ADD content text;
ALTER TABLE comment ADD categorie int;
ALTER TABLE comment ADD photo1 text;
ALTER TABLE comment ADD photo2 text;
ALTER TABLE comment ADD photo3 text;
ALTER TABLE comment ADD note text;
ALTER TABLE comment ADD access_cnt int;
ALTER TABLE comment ADD create_at datetime;
ALTER TABLE comment ADD update_at datetime;
ALTER TABLE comment ADD del_flg tinyint(1);
■テーブル構造の確認
show databases;
describe member;
describe reply;
describe study;
■テーブルの確認
show tables;
■カラムを削除。
ALTER TABLE member drop comment_id;
ALTER TABLE member drop memo;
◆プロジェクト作成
symfony propel-build-schema
symfony propel-build-model
■web/backendディレクトリ作成
cd /home/ユーザー名/プロジェクト名/web
mkdir backend
mv backend.php backend_dev.php ./backend
cp .htaccess ./backend
■.htaccessの内容を変更
cd backend
vi .htaccess
■RewriteBaseとRewriteRuleを以下のように変更
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
RewriteBase /
# we skip all files with .something
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ /backend/backend.php [QSA,L]
</IfModule>
# big crash from our front web controller
ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly"
■web/backend/backend.phpを以下のように修正
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/..'));
↓
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/../..'));
■/home/sheena/hunt/apps/front/config/view.ymlを開き、
title、description、keywords を変更する
終了後symfony cc
■データベースへの接続情報を設定する
プロジェクト名/config/databases.yml を開く
all:
propel:
class: sfPropelDatabase
param:
dsn: mysql://ユーザー名:password@localhost/プロジェクト名
encoding: utf8
■プロジェクト名/config/propel.iniを開き、以下の2項目を修正する
propel.database.createUrl = mysql://ユーザー名:password@localhost
propel.database.url = mysql://ユーザー名:password@localhost/プロジェクト名
◆sfPageFlow(Model名はlib/model参照。最初が大文字なら合わせる。)
管理者用会員情報
symfony propel-generate-create backend default Member
symfony propel-generate-edit backend default Member
symfony propel-generate-list backend default Member
管理者用コメント管理
symfony propel-generate-list backend comment_edit Comment
ログイン
symfony propel-generate-create front login Member
ログアウト
symfony propel-generate-create front logout Member
一般用新規登録
symfony propel-generate-create front member_add Member
新規投稿
symfony propel-generate-create front default Comment
symfony propel-generate-list front default Comment
返信
symfony propel-generate-create front reply_add Reply
投稿管理
symfony propel-generate-edit front comment_edit Comment
必要なもの
/lib/helper/
MyUtilityHelper.zip解凍後のMyUtilityHelper.phpでおk
/apps/front/templates
_pager.php
/apps/front/lib
myUser.class.php
actionにある下記をCommentPeer.phpへ移動
static public function getPager($perpage, $page, $parameters)
{
$c = new Criteria();
//$c->addDescendingOrderByColumn(self::CREATED_AT);
$pager = new sfPropelPager('Comment', $perpage);
$pager->setCriteria($c);
$pager->setPage($page);
$pager->init();
return $pager;
}
このままだと編集できないので
<a href="/comment_edit/flow?id=<?php echo $item->getId();?>">edit</a>
を追加
2011年4月28日木曜日
4/28覚書
ラベル:
sfPageFlow,
Symfony,
講座
4/25覚書
腰痛きついいいい。ちくしょー。
4時間目から登校。
☆sfPageFlow
めんどくさい投稿、編集、完了を一気にやってくれるプラグイン。
最初の解凍方法で詰まったっす・・・・
ええとまずgenerator.zipを自分のプロジェクト直下にFTPでUP。
mv generator.zip /usr/share/pear/data/symfony/
そのあとsuでrootログインして移動
cd /usr/share/pear/data/symfony/
解凍失敗してたファイルを移動
mv generator bk.generator
再度解凍
unzip generator.zip
あとは教科書通りで。
rootに入ったときはcd /home/で入るよ。ってすっかり忘れてたよ・・・。
課題がBBS焼き直しなのでそのまま入った。
symfony propel-generate-create backend member_add Member
symfony propel-generate-edit backend member_edit Member
symfony propel-generate-list backend member_list Member
4時間目から登校。
☆sfPageFlow
めんどくさい投稿、編集、完了を一気にやってくれるプラグイン。
最初の解凍方法で詰まったっす・・・・
ええとまずgenerator.zipを自分のプロジェクト直下にFTPでUP。
mv generator.zip /usr/share/pear/data/symfony/
そのあとsuでrootログインして移動
cd /usr/share/pear/data/symfony/
解凍失敗してたファイルを移動
mv generator bk.generator
再度解凍
unzip generator.zip
あとは教科書通りで。
rootに入ったときはcd /home/で入るよ。ってすっかり忘れてたよ・・・。
課題がBBS焼き直しなのでそのまま入った。
symfony propel-generate-create backend member_add Member
symfony propel-generate-edit backend member_edit Member
symfony propel-generate-list backend member_list Member
書きかけ
if(!$member){
$this->redirect('testmember_list/index')
}
<a href="/testmember_list/index?delete=on&id=<?php echo $item->getId()?>">
<a onclick="return confirm('削除しますか?');" href=
ラベル:
sfPageFlow,
Symfony,
講座
登録:
コメント (Atom)