X



symfony PHPフレームワークpart2

0221nobodyさん
垢版 |
2010/10/11(月) 01:17:59ID:???
>>220
 $this->thread = Doctrine_Core::getTable('thread')
  ->createQuery('t')
  ->where('t.id',$request->getParameter('id'))
  ->leftJoin('t.User u')
  ->execute();

 $this->thread = Doctrine_Core::getTable('thread')
  ->createQuery('t')
  ->where('t.id = ?',$request->getParameter('id'))
  ->leftJoin('t.User u')
  ->fetchOne();

に変えたらどう?
0222nobodyさん
垢版 |
2010/10/11(月) 02:17:36ID:???
fetchOne()に変えて、$thread['User']['name'] で取得できました!
SQLも新しく発行されていないようです。
ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど><
0223nobodyさん
垢版 |
2010/10/11(月) 02:55:20ID:???
サンプルに合わせて言い方変えちゃいましたけど、
実際はfetchArray()で取得して、foreach()でループさせました。
とりあえずうまく行ったようです。
0224nobodyさん
垢版 |
2010/10/11(月) 20:37:48ID:???
$form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか?

具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。
0225nobodyさん
垢版 |
2010/10/12(火) 00:52:35ID:???
>>224
sfErrorSchemaにでも、入ってるんじゃないの?

$form->getErrorSchema()だったかな?
0226nobodyさん
垢版 |
2010/10/13(水) 20:37:10ID:???
特定のユーザーを、強制ログアウトさせるにはどうすればいいですか?
0227nobodyさん
垢版 |
2010/10/14(木) 10:37:08ID:???
>>226
myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。
0228nobodyさん
垢版 |
2010/10/14(木) 17:05:40ID:???
>>227
すいません、そうゆう意味じゃないです。
たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、
そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。

セッションにユーザーIDを入れておき、
全セッションファイルをトラバースして、
「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな?
symfony関係なくなっちゃうけど。。。
0229nobodyさん
垢版 |
2010/10/14(木) 17:34:03ID:???
Doctrineで書いたコードの、selectがうまく反映されません。
count()をやめて、execute()にして返ってきたDoctrineCorectionをcount()すると正しい件数が取得できます。
でも重いので、SQLのcount()でなんとか処理したいです。

public static function getLoginDays($id)
{
 return LoginTable::getInstance()
  ->createQuery('l')
  ->select('DATE_FORMAT(l.created_at,"%Y-%m-%d") as days, count(*) as num')
  ->where('l.user_id = ?',$id)
  ->groupBy('DATE_FORMAT(l.created_at,"%Y-%m-%d")')
  ->orderBy('days')
  ->count();
}

#symfonyが発行したSQL
SELECT COUNT(*) AS num_results FROM log l WHERE l.user_id = '1' GROUP BY DATE_FORMAT(l.created_at, "%Y-%m-%d");

結果、日付の区別無しに、ログの総数が返ります。
0230nobodyさん
垢版 |
2010/10/14(木) 17:44:03ID:???
恥ずかしいミスした!
DoctrineCorectionは、DoctrineCollectionの間違いでした^^;
0231nobodyさん
垢版 |
2010/10/14(木) 19:07:30ID:???
>>228
それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では
myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない?
強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に
落とす。

username password is_active
0232231
垢版 |
2010/10/14(木) 19:08:38ID:???
ごめん、途中送信。

username password is_active
testuser ****** 1     ⇒ログインできる
nguser ****** 0     ⇒ログインできない&強制ログアウト
0233nobodyさん
垢版 |
2010/10/14(木) 20:07:47ID:???
myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。
0234229
垢版 |
2010/10/15(金) 17:53:24ID:???
ちょっと語弊がありました。
グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。
日付が複数の場合、正しい値が返ります。
0235nobodyさん
垢版 |
2010/10/15(金) 17:59:07ID:???
分かったら当たり前だけど、myUserのコンストラクタは

 public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
 {
  parent::__construct($dispatcher, $storage, $options);
 }

って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。
0236nobodyさん
垢版 |
2010/10/15(金) 18:25:07ID:???
テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど
$thisとかも見に行ってるんですか??
0237nobodyさん
垢版 |
2010/10/15(金) 21:08:43ID:???
>>236
変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。
0238nobodyさん
垢版 |
2010/10/16(土) 17:14:44ID:JUO6sOS6
フォームで、ユーザーに改ざんされたくない値を扱う方法で質問です。

formで隠したいパラメータ(from_id)をunsetしておいて、アクションで
> $message = new Message();
> $message['from_id'] = $this->getUser()->getAttribute('id');
> $form = new MessageForm($message);

とやる方法と、

formでunsetせずに
> $values = $this->getUser()->getAttribute($form->getName());
> $values['from_id'] = $this->getUser()->getAttribute('id');
> $form = $this->processForm($form, $values);
と上書きする方法の2通りがあると思うのですが、
どちらも安全でしょうか?
それとも、他に方法があるんでしょうか?
0239nobodyさん
垢版 |
2010/10/16(土) 20:04:03ID:JUO6sOS6
セッションがタイムアウトして、AuthenticatedとCredencialがクリアされたのに、
$this->getUser()->setAttribute()した値が残ってるのですが、
これって普通ですか?
0240nobodyさん
垢版 |
2010/10/18(月) 18:21:55ID:???
>>239
認証とセッションデータをごっちゃにするなよ
0241nobodyさん
垢版 |
2010/10/18(月) 18:54:39ID:3g1bUgIr
DoctrineでのInnnerJoinの書き方で苦戦しています(汗
下記のSQL文でコマンドラインでは動いてるんですが、
どのように記述すればよいのでしょうか?

SELECT w.target_user_id as user_id, DATE_FORMAT(w.created_at,"%Y-%m-%d") as days,w.type as type,count(*) as num FROM warn w
INNER JOIN (
SELECT target_user_id,count(*) AS datas
FROM warn GROUP BY target_user_id
) AS SUB USING(target_user_id)
GROUP BY user_id,days,type
ORDER BY datas DESC ,user_id ASC,days ASC,type ASC;
0242nobodyさん
垢版 |
2010/10/19(火) 02:27:53ID:0CIYXc+U
ユーザー情報を持つUserAccountテーブルと、そのIDをカラムに持つBlogテーブルをリレーションさせておくと、
フォームの作成で下記のようなファイルが生成されます。

これが、ユーザー数が多くて、かつuser_idをunset()して使うケースではかなり無駄な気がします。
手作業でsetup()を上書きして、widgetをsfWidgetFormInputText、
validatorをsfValidatorIntegerに変える、という感じに書き換えたいのですが、
スキーマのオプションとかでsfWidgetFormDoctrineChoice()&$this->getRelatedModelName()を
使わないようにはできないんでしょうか?

$this->getRelatedModelName()の呼び出しは1回で済むはずなのに無駄なコードだし。。。
ユーザーが1万人になったら、フォームの表示のたびに2万件のレコード引っ張ってくるつもり?

abstract class BaseBlogForm extends BaseFormDoctrine
{
 public function setup()
 {
  $this->setWidgets(array(
   'id'          => new sfWidgetFormInputHidden(),
   'user_id'       => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'), 'add_empty' => false)),
  ));

  $this->setValidators(array(
   'id'          => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')), 'empty_value' => $this->getObject()->get('id'), 'required' => false)),
   'user_id'       => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'))),
  ));
0243nobodyさん
垢版 |
2010/10/19(火) 21:06:26ID:0CIYXc+U
sfWidgetFormDoctrineChoice::getChoices()
が呼ばれるのはrender()の時だけ?
大ポカだった。
0244nobodyさん
垢版 |
2010/10/20(水) 16:50:03ID:mJZvzEer
sfGuardPluginを使わずに、自分でログインページを作ったのですが、
is_secure:true にした場合にログインページにforwardしてくれるのはいいのですが
認証成功後にforwardする前のページにredirectするにはどうすればいいでしょうか?
0245239
垢版 |
2010/10/21(木) 01:56:28ID:???
認証情報はセッションに入ってるものだと思ってました。
認証情報はどこに保存されているんでしょう??
0246nobodyさん
垢版 |
2010/11/04(木) 18:06:43ID:kCotlNfK
ファイルアップロードで、ファイル名の「'」が「\'」になるんですけど
これってSymfonyの問題ですか?
PHPも初心者なもんでどうすればいいのか分かりません。。。
0247nobodyさん
垢版 |
2010/11/06(土) 13:24:52ID:???
問題があるとしたらファイル名に「'」を使ってることかな
0248nobodyさん
垢版 |
2010/11/07(日) 05:37:42ID:???
php初心者というかパソコン初心者レベルだな
0249nobodyさん
垢版 |
2010/11/08(月) 03:03:57ID:???
セッション(認証?)が30分程度で切れてしまいます。
以下の設定だけでは、変更できないんでしょうか?

#.htaccess
php_value session.gc_maxlifetime 86400
php_value session.gc_probability 1
php_value session.gc_divisor 100

#setting.yml
all:
user:
class: myUser
param:
timeout: 86400
0250nobodyさん
垢版 |
2010/11/08(月) 20:05:11ID:???
factories.ymlに書くんだと思う

user:
class: myUser
param:
timeout: 86400

こんな感じ
0252nobodyさん
垢版 |
2010/11/13(土) 05:16:41ID:???
sfDoctrineGuardPlugin使ってます。
バックエンドで、is_super_adminなアカウントだけ閲覧を許可していんですけど
以下のsecurity.ymlでうまくいきません。クレデンシャルが違うんでしょうか?

index:
is_secure: true
credentials: admin

それと、新規登録時に
Notice: Undefined offset: 1 in D:\MyProject\symfony\lib\vendor\symfony\lib\config\sfGeneratorConfigHandler.class.php on line 68

という謎のエラーが出てしまいます。
sfGuardAuthに空のgenerator.ymlを作ると治るという情報があったのですが
治りませんでした。他に解決方法はありませんでしょうか?
0253nobodyさん
垢版 |
2010/11/13(土) 07:15:40ID:???
>>252
credentails: [admin]
じゃなくて?
sfDoctrineGuardPlugin使ったことないからよくしらんけど
0255nobodyさん
垢版 |
2010/11/14(日) 02:59:13ID:???
日別のアクセス数を集計しようとしてるのですが、正常にうごきません。
日付の比較がおかしくなっている感じがします。

スキーマはこんな感じです。
AccessLog:
 tableName: access_log
 actAs: { Timestampable: ~ }
 columns:
  user_id: varchar(50)
0256nobodyさん
垢版 |
2010/11/14(日) 03:01:31ID:???
コードと同等(と思っている)のSQLをMySqlコマンドラインから実行すると、正常にいきます。

SELECT a.id, a.user_id, COUNT(*), DATE(a.created_at) AS date
FROM access_log a
WHERE (a.user_id = 'admin' AND a.created_at > '2010-11-01 00:00:00' AND a.created_at < '2010-11-29 23:59:59')
GROUP BY date ORDER BY a.created_at;

「->andWhere('a.created_at < ?',$end)」の行を抜かすと一応取得はできます。
原因はなんでしょうか?

$id = 'admin';
$start = "'2011-11-01 00:00:00'";
$end ="'2011-11-30 23:59:59'";

$this->accesslogs = Doctrine_Query::create()
->select('a.user_id, count(*) as count, DATE(a.created_at) as date')
->from('accesslog as a')
->where('a.user_id = ?',$id)
->andWhere('a.created_at > ?',$start)
->andWhere('a.created_at < ?',$end)
->groupBy('date')
->orderBy('a.created_at')
->execute();

0257nobodyさん
垢版 |
2010/11/14(日) 03:04:05ID:???
ついでにfixture.ymlも書いておきます。

AccessLog:
 log1:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log2:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log3:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log4:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log5:
  user_id: admin
  created_at: '2010-11-15 21:56:54'
0258nobodyさん
垢版 |
2010/11/14(日) 19:32:35ID:???
(たぶん)解決しました。

->from('accesslog as a')
じゃなくて
->from('accesslog a')
に変えると期待通りに動きました^^;

夜中3時間悩んだのに、昼に起きて5分で解決しました。
休憩や睡眠って大事ですね。みなさんもがんばってください。

なんで$endの行が無いときにうまくいったかは謎のままですが。。。
0259nobodyさん
垢版 |
2010/11/14(日) 23:36:38ID:???
sfDoctrineGuardPluginって使ってる人いる??
symfony慣れてないくせして導入してみたんだけど、symfonyとバージョン合ってないのかな?

sfGuardRememberMeFilterが機能してない気がする。

settings.ymlで
enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth, sfGuardForgotPassword]
を記述しても、バックエンドに追加されてない。
sfGuardUserは手動でバックエンドに追加できるけど、sfGuardPermissionは足りないファイルがたんまり。ネットで拾ってきてもまともに動かない。

あと、save-fixtureしてリロードすると、パスワードがハッシュされてログインできなくなる。

このあたり、どうにかなりませんか?

0260nobodyさん
垢版 |
2010/11/15(月) 21:25:47ID:WH+q5o59
こうゆう複雑なSQLはDoctrineでできますか?
Doctrineは単純なSQLだけで、複雑な合成はPHPでやったほうがいいのかな。

SELECT u.id as u__id,
u.username as u__username,
s.date as s__date,
a.access as a__access,
s.sales as s__sales
FROM sf_guard_user u
LEFT OUTER JOIN
(SELECT user_id,
DATE(created_at) AS date,
SUM(amount) AS sales
FROM sales
GROUP BY user_id, DATE(created_at)) s
ON u.username = s.user_id
LEFT OUTER JOIN
(SELECT user_id,
DATE(created_at) AS date,
count(*) AS access
FROM access_log
GROUP BY user_id, DATE(created_at)) a
ON u.username = a.user_id
AND s.date = a.date
WHERE u.username = 'admin'
AND s.date > '2010-11-01 00:00:00'
AND s.date < '2010-12-01 00:00:00'
ORDER BY s.date;
0261nobodyさん
垢版 |
2010/11/15(月) 23:40:15ID:???
これ、どうゆう意味ですか?

> 500 | Internal Server Error | Doctrine_Query_Exception
> The root class of the query (alias s) must have at least one field selected.

ユーザー毎の売上げを集計したいだけなんだけど。。。

#action.php
 public function executeSalelist(sfWebRequest $request)
 {
   $this->saless = Doctrine_Query::create()
   ->select('s.user_id as id, p.name, sum(s.amount) as amount')
   ->from('Sales s')
   ->leftJoin('s.Profile p')
   ->groupBy('id')
   ->execute();
 }


0262261
垢版 |
2010/11/15(月) 23:41:34ID:???
#schema.yml
Sales:
 tableName: sales
 actAs:    { Timestampable: ~ }
 columns:
  user_id:
   type: integer
  amount: integer
 relations:
   User:
    class: sfGuardUser
    foreign: id
    local: user_id
    type: many
    onDelete: cascade
    foreignType: many
    foreignAlias: Sales
   Profile:
    class: sfGuardUserProfile
    foreign: user_id
    local: user_id
    type: many
    onDelete: cascade
    foreignType: many
    foreignAlias: Sales
0263nobodyさん
垢版 |
2010/11/16(火) 03:02:08ID:???
sfGuardPluginついでに。

> $this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('User'))));

フォームのプルダウンでuser_id=0のアカウントを選択してポストすると、
user_id=1として格納されてしまいます。
なんで〜??
0264nobodyさん
垢版 |
2010/11/16(火) 03:53:30ID:???
user_idをauto_incrimentにしてない?
0265261
垢版 |
2010/11/16(火) 13:36:35ID:???
selectからp.nameをとるととりあえずいける。
Profileがおかしいのかな?

Sales:
tableName: sales
actAs: { Timestampable: ~ }
columns:
user_id:
type: integer
amount: integer
relations:
User:
class: sfGuardUser
foreign: id
local: use_id
type: many
onDelete: cascade
foreignType: many
foreignAlias: Sales
Profile:
class: sfGuardUserProfile
foreign: user_id
local: user_id
type: many
onDelete: cascade
foreignType: many
foreignAlias: Profile
0266261
垢版 |
2010/11/16(火) 13:38:26ID:???
sfGuardUserProfile:
tableName: sf_guard_user_profile
actAs: { Timestampable: ~ }
columns:
id: integer
user_id:
type: integer
primary: true
bank_name: varchar(50)
bank_point: varchar(50)
bank_type:
type: enum
values: [ordinary, current]
default: ordinary
name: varchar(50)
bank_number: varchar(50)
relations:
User:
class: sfGuardUser
foreign: id
local: user_id
type: one
onDelete: cascade
foreignType: one
foreignAlias: Profile
0267nobodyさん
垢版 |
2010/11/16(火) 21:13:48ID:???
フォーム難しいですね。。。

スキーマでは user_id(type:integer) にリレーションしてるんだけど、
フォームでは user_name(type:varchar(255)) で入力したい場合はどうすればいいですか?
0268267
垢版 |
2010/11/16(火) 21:27:44ID:???
Newのときは下記コードでうまく「ユーザー名入力→ユーザーIDに変換」できるようになったんですが、
Editのとき編集フォームがuser_idのままです。。。

 public function configure()
 {
  $this->widgetSchema['user_id'] = new sfWidgetFormInputText();
  $this->setValidator('user_id', new sfValidatorString(array('max_length' => 128, 'required' => true)));
  $this->validatorSchema->setPostValidator(new sfValidatorCallback(
   array(
    'callback' => array($this, 'validateUsername'),
   ),
   array(
    'invalid' => 'アカウント名を正しく入力してください。',
   )
  ));

 }
0269267
垢版 |
2010/11/16(火) 21:31:08ID:???
 public function validateUsername(sfValidatorBase $validator, $values)
 {
  if (strlen($values['user_id']))
  {
   $user = Doctrine_Core::getTable('User')->findOneByUsername($values['user_id']);

   if (!$user)
   {
    throw new sfValidatorError($validator, 'invalid');
   }

   $values['user_id'] = $user->getId();
  }

  return $values;
 }

}

0270267
垢版 |
2010/11/16(火) 22:50:03ID:???
コンストラクタ上書きでできたけど、上記含めてお作法的にこれでいいんかな。。。

0271267
垢版 |
2010/11/16(火) 23:45:05ID:???
このスレにはお世話になってるし、
だれかの役に立つかもしれないから、動いたコンストラクタのコードも一応書いときます。
けんちゃんより(はぁと)

 public function __construct($defaults = array(), $options = array(), $CSRFSecret = null)
 {
  if(isset($defaults['user_id']))
  {
   $user = Doctrine_Core::getTable('User')->find($defaults['user_id']);
   if($user)
   {
    $defaults['user_id'] = $user->getUsername();
   }
  }
  parent::__construct($defaults, $options, $CSRFSecret);
 }
0272nobodyさん
垢版 |
2010/11/17(水) 05:44:26ID:???
他システムへのアクセスがあったときに、タスクを用いてSymfony側にアクセスログを取ろうとしています。

実行すると「There is no open connection」というエラーが出てしまいます。
なにがおかしいんでしょうか?

> $databaseManager = new sfDatabaseManager($this->configuration);
> $connection = $databaseManager->getDatabase('links')->getConnection();
を追加してみたのですが、
「 Database "links" does not exist.」
というエラーが出てしまいます。これは正しいDB名です。


0273nobodyさん
垢版 |
2010/11/17(水) 05:46:56ID:???
C:\MyProject\link>php symfony link:access user01 111.111.111.111

#accessTask.class.php
<?php

class accessTask extends sfBaseTask
{
 public function configure()
 {
  $this->namespace = 'link';
  $this->name   = 'access';
  $this->addArgument('username', sfCommandArgument::OPTIONAL);
  $this->addArgument('ip', sfCommandArgument::OPTIONAL);
 }

 public function execute($arguments = array(), $options = array())
 {

  $access = new Accesslog();
  $access->setUsername($arguments['username']);
  $access->setIp($arguments['ip']);
  $access->save();
  $this->log('access from '. $arguments['ip']);
 }
}
0274nobodyさん
垢版 |
2010/11/17(水) 10:31:09ID:???
>>273
・extends sfDoctrineBaseTaskにする
・executeの冒頭に
$configuration = $this->createConfiguration('users', 'cli');
new sfDatabaseManager($this->configuration);
と書く。

理屈は知らんがw
doctrineならこれで動くんじゃね
0275nobodyさん
垢版 |
2010/11/17(水) 10:31:58ID:???
あ、ごめん。createConfigurationの最初の引数はapp名で。
0276nobodyさん
垢版 |
2010/11/17(水) 17:22:41ID:???
できた〜!

しっかし重いなぁ。。。
まだ連動させてないけど、Doctrineがログ吐くのが悪さしないといいんだけど。
(-quiet指定したら、"-u","-i","-e"オプションが無いとエラーが出たのであとで調べる。)
0277nobodyさん
垢版 |
2010/12/13(月) 19:58:07ID:???
マイグレーションについてなんですけど、
カラムの追加は公式ドキュメントでなんとなく分かりました。

ただ、テーブル(既存テーブルとのリレーション有り)を新たに追加する場合は
どうすればよいのでしょうか?
Symfonyが吐いたテーブル作成のSQL文をコピペしてprod環境で実行、
モデル等のファイルをアップロード、
キャッシュクリア
というような手作業になるのでしょうか?
ビルドはいらないですよね?
0279nobodyさん
垢版 |
2010/12/13(月) 23:26:51ID:???
まだあまりsymfonyを理解していないのですが、
symfony doctrine:build --all --and-load
すると、まずデータベースがdropされますよね?

複数プロジェクトで共通のユーザー情報マスタDBを使うつもりでいるので
1つのプロジェクトを更新するたびにユーザー情報がdropされると困るのですが、
どのように構成すればよいでしょうか?

#仮にユーザー情報マスタDBのスキーマだけを持ったプロジェクトを作って、
#ほかのプロジェクトはユーザー情報DBをスキーマに記述しない構成も考えたのですが、
#モデル等が作られないのでリレーション等が働かない気がしています。
0280nobodyさん
垢版 |
2010/12/14(火) 07:43:09ID:???
>>278
つttp://symfony-doc-ja.googlecode.com/svn/branches/1.2/html/book/09-Links-and-the-Routing-System.html#url.rewriting
0281nobodyさん
垢版 |
2010/12/18(土) 02:06:30ID:???
初心者のくせにサーバでsymfony運用始めちゃったんですけど、
新しいテーブル追加するにはどうすればいいですか??

サーバでbuild-allするとdropしちゃいますよね?
一旦save-fixtureすることも考えたんですが
sfGuardPluginなんで、パスワードが変わっちゃいますよね?;;
0282nobodyさん
垢版 |
2010/12/19(日) 00:28:41ID:???
>>281
build-allじゃなくて必要なタスクだけ実行すればいいんじゃないの?

やり方は色々あると思うけど
例えば新しいテーブルはSQLで作って
symfony --xml build-schema
symfony build --model
symfony build --forms
symfony cc
とか。
0283281
垢版 |
2010/12/27(月) 05:22:49ID:ZrwXahVr
遅くなりました。
ちょっとそれでやってみることにします。
0284nobodyさん
垢版 |
2010/12/28(火) 01:53:08ID:???
駄目フレームワークの典型symfony
だから誰も使わないし流行らない。
0285nobodyさん
垢版 |
2010/12/28(火) 04:53:44ID:???
2.0で大きく変わるんだから、自身で悪い点は分かってるんだろうよ。
フレームワークは所詮道具なんで、どれを使ってもいくつも使ってもいいと思う。
ケースバイケース、適材適所で。
1個覚えれば他に移行するのも楽だよ。
俺はsymfonyともPHPとも心中する気は無いけど、
それでも、今現在の最善策だと思って使ってく。
5年も経てば、CakeでもZendでもない新しいフレームワークにみんな移ってると思うよ。
そんな気持ち。
0286nobodyさん
垢版 |
2010/12/28(火) 09:09:58ID:???
多言語サポートしたいんだけど、
URLにdomain.com/jp/とかdomain.com/en/とかアドレスを分けたくない場合は
どうすればいいですか?
サーチエンジンからすると、分けてたほうがいいのかな??
0287nobodyさん
垢版 |
2010/12/29(水) 03:44:19ID:???
なぜ英語はen(english)なのに日本語はjpですか?
その流れではjaなのではないのですか?
0288nobodyさん
垢版 |
2010/12/29(水) 18:34:12ID:???
symfony使いこなせる人はスキル高いと思うよ
symfonyから学ぶことはたくさんある
symfony2.0への前準備として1.4勉強するといいよ
0289nobodyさん
垢版 |
2011/01/01(土) 06:25:49ID:???
2.0のチュートリアル等の日本語化は誰がやるか決まってるの?
0290nobodyさん
垢版 |
2011/01/04(火) 10:17:31ID:???
>>289
symfonyユーザー会で分担してやるんじゃね?やる気があるならユーザー会へ立候補どぞー
0291nobodyさん
垢版 |
2011/01/04(火) 23:09:37ID:???
チュートリアルやってみたけどSubversion導入するところでめんどくさくなって挫折した。
0292nobodyさん
垢版 |
2011/01/14(金) 02:52:12ID:???
>>284
まぁお前が無知だから使われてること知らないだけだけどな
0293nobodyさん
垢版 |
2011/01/14(金) 18:21:43ID:???
Doctrineについて質問だけど、join系にサブクエリって入れれる?
どうもやり方が見つけられない・・・。
0294nobodyさん
垢版 |
2011/01/15(土) 13:43:19ID:PxyuICb1
>>286
JavaScript で対応。jQuery プラグインなら jquery.localize.js とか MS 謹製の jQuery Globalization Plugin が見つかるね。
0295nobodyさん
垢版 |
2011/01/15(土) 13:44:44ID:PxyuICb1
>>289
主だった人は執筆やら勉強の会の準備に忙しいから、
0296nobodyさん
垢版 |
2011/01/15(土) 13:57:41ID:PxyuICb1
>>295 のつづき。すぐに翻訳はそろわないと思うよ。ただ、コードサンプルはわかりやすいから、英語が読めなくても内容をかなりつかめるんじゃないかな。
0297nobodyさん
垢版 |
2011/01/15(土) 14:10:43ID:PxyuICb1
>>284
ガラパゴス基準で考えてほしくないな。github のウォッチングランキングに入っているのでじゅうぶん人気はあると思うよ。
https://github.com/popular/watched
0298nobodyさん
垢版 |
2011/01/15(土) 17:49:57ID:???
VPSも安くなったし、もう無理してPHP使う必要無い時代になったな。
0299nobodyさん
垢版 |
2011/01/15(土) 22:12:45ID:PxyuICb1
>>298
パフォーマンスの問題というよりも、PHPでは体験できない新しい勉強をしたいということではないだろうか。世界の状況はどんどん変わってゆくのだから、>>285 と同じことだけど特定のフレームワークや言語に囚われる必然性はないよ。
0300nobodyさん
垢版 |
2011/01/23(日) 02:44:06ID:???
シンプルとはいえない
0302nobodyさん
垢版 |
2011/01/29(土) 15:07:57ID:???
VPSだからPHP要らない?
お前は何を言っているんだw
0303nobodyさん
垢版 |
2011/02/01(火) 09:59:49ID:???
>>298の言いたいことはよく分かる。
PHPなんて糞だと思いつつも、格安鯖にはPHPとPerlしかないし…
と、他の言語に興味がありながら、なかなか手を出せなかった人にとってはいい転換期だと思う。
インフラの心配なく、自動スケールするGoogle App Engineとかもあるしね。
JavaとかPythonもやってみると意外と面白い。
0304nobodyさん
垢版 |
2011/02/01(火) 11:10:01ID:???
確かに>>298が何を言おうとしているのかその意図がわからんな
VPSにしてWAS入れてとかの話なのか?

まあここはsymfonyスレだが・・
0305nobodyさん
垢版 |
2011/02/03(木) 00:03:26ID:???
ルート権限あるなら、mod_perlでもPassengerでも自由にインストール出来るから名。
これまでのレンタルサーバの共用プランだと、mod_phpかPerl/CGIしか選択肢がなかった。
そういう事だろう。
0306nobodyさん
垢版 |
2011/02/03(木) 01:43:49ID:???
Perlも最低限SSHでシェルにアクセスできんと
local::libでCPANモジュールぶっこみができないのがつらいところ
0307nobodyさん
垢版 |
2011/04/15(金) 12:53:12.64ID:???
Doctrineで新しくレコード追加したわけだが、
追加したレコードのIDが取得できん。

$xxxx = new AAAAA();
: (各種設定setXXXX())
$xxxx->save();

$xxxx->getId();←常に0が返ってくる。

別のテーブルでも試してみて、原因は複合主キーだとは
わかっているんだが、どうやってInsertしたテーブルの
キーを取得すればよいのか誰か教えて欲しい。
0308nobodyさん
垢版 |
2011/04/16(土) 00:15:15.06ID:???
スマホ対応どうしてますか?
0310nobodyさん
垢版 |
2011/05/09(月) 22:51:03.02ID:???
symfony2勉強会人気ありすぎワロタ
0311nobodyさん
垢版 |
2011/05/19(木) 07:19:01.17ID:???
ZF人気なさすぎワロタ
0312nobodyさん
垢版 |
2011/05/20(金) 20:40:57.95ID:???
なぜ、Symfonyのスレが盛り上がらないのか?
その答えは単純明快である。

Symfonyの素晴らしさを理解できる優秀なエンジニアは
この世に一握りしかいないからである。

世間の評価など気にせずに、優秀なエンジニア達は
迷わずSymfonyを使えばいい。

Symfonyの素晴らしさを理解できる優秀なエンジニアだけで
Synfonyを独占すればいい。
0315nobodyさん
垢版 |
2011/07/16(土) 10:49:36.52ID:???
APIの結果をページングしたい場合、
sfPagerを継承して独自のページャを作る、っていう方法であってますか?
0316nobodyさん
垢版 |
2011/08/21(日) 15:06:40.02ID:???
手嶋屋のおかげでsymfonyの評価がた落ちだよ。
0317nobodyさん
垢版 |
2011/08/22(月) 09:27:30.42ID:???
最近、諸事情でしぶしぶCakePHPを触ることになったのだが、
やっぱCakeのがシンプルで融通聞くと思い始めた。
symfony2は原型とどめてないしビジネス的に見てもCakeかなあ・・・
あとやっぱりschema.ymlとmigration両方書くのもめんどい。
0318nobodyさん
垢版 |
2011/08/29(月) 13:54:53.89ID:???
symfonyつぎはぎすぎる
0319nobodyさん
垢版 |
2011/09/09(金) 12:56:57.62ID:???
symfony1.0とPHP5.3って相性良くないですか?
なんかデバッグしにくい妙なエラーが・・
無理に5.3にせずに5.2で行く方が無難かな
0320nobodyさん
垢版 |
2011/09/09(金) 14:04:29.22ID:???
newの前にある&を取ればいーんじゃね?
0321nobodyさん
垢版 |
2011/09/10(土) 14:10:10.81ID:???
自分の書いたクラスでメソッドの修飾子をpublic publicと二回書いてて
5.2まではそれでも動いていたのが、5.3では動かなくなっていて
しかもそれがバッドノウハウ的にエラー表示を消してるところで起きていたので分からなかっただけでした・・orz
レスを投稿する


ニューススポーツなんでも実況