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

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

DoctrineとMySQLの対応表が昔のSymfony Tutorialにあったようなのでパクッってきました。元はこちら
http://www.symfony-project.org/doctrine/1_2/ja/06-Working-With-Data

共通のAPI

関数名 SQL append 説明
where('u.username = ?', 'jwage') u.username = ? No WHEREを設定して既存のWHERE<条件をオーバーライドする
andWhere('u.username = ?', 'jwage') AND u.username = ? Yes ANDでappendされるWHERE条件を追加する
whereIn('u.id', array(1, 2, 3)) AND u.id IN (?, ?, ?) Yes appendされるAND IN WHERE 条件を追加する
andWhereIn('u.id', array(1, 2, 3)) ^ Yes whereIn()用のコンビニエンス/プロキシメソッド
orWhereIn('u.id', array(1, 2, 3)) OR u.id IN (?, ?, ?) Yes appendされるOR IN WHERE条件を追加する
whereNotIn('u.id', array(1, 2, 3)) AND u.id NOT IN (?, ?, ?) Yes appendされるAND NOT IN WHERE条件を追加する
andWhereNotIn('u.id', array(1, 2, 3)) ^ Yes whereNotIn()用のコンビニエンス/プロキシメソッド
orWhereNotIn('u.id', array(1, 2, 3)) OR u.id NOT IN (?, ?, ?) Yes appendされるOR NOT IN WHEREの条件を追加する
orWhere('u.username = ?', 'jwage') OR u.username = ? Yes OR、WHERE条件を追加する
groupBy('u.id') GROUP BY u.id, u.username No GROUP BYを設定して既存のGROUP BYをオーバーライドする
addGroupBy('u.username') GROUP BY u.username Yes appendされるGROUP BYを追加する that is appended
having('num_phonenumbers > 0') HAVING num_phonenumbers > 0 No HAVINGを設定して既存のHAVINGをオーバーライドする
addHaving('u.username = ?', 'jwage') HAVING u.username = ? Yes 追加されるHAVINGを追加する

選択のAPI

関数名 説明
distinct($flag = true) フラグをdistinct selectに設定する
select('u.id, u.username, COUNT(p.id) as num_phonenumbers') SELECTを設定して既存のSELECTをオーバーライドする
addSelect('u.email_address') appendされるselectを追加する
from('User u, u.Phonenumber p') FROMを設定して既存のFROMとjoinをオーバーライドする
leftJoin('u.Phonenumber p') FROMにappendされるLEFT JOINを追加する
innerJoin('u.Profile p') FROMにappendされるINNER JOINを追加する
addFrom('u.Phonenumber p') FROMにappendされるFROM joinを追加する
orderBy('u.username') ORDER BYを設定して既存のORDER BYをオーバーライドする
addOrderBy('u.is_active = ?', 1) appendされるORDER BYを追加する
limit(20) 結果セットを制限するレコードの数を設定する
offset(5) レコードの制限をオフセットする番号を設定する

更新API

関数名 説明
forUpdate($flag = true) FOR UPDATEを使うためにクエリを変更する
update('User u') UPDATEするモデルの名前を指定する
set('u.username', '?', 'jwage') UPDATEクエリのために新しい値を設定する。最初の引数は修正するデータで、2番目はDQLの文字列に直接加える式(もしくはDBMS関数)、で3番目は新しい値。

削除API

関数名 説明
delete() 削除するクエリを変更する


例:
(MySQL)
SELECT i.name FROM item i WHERE i.id=3
↓↑
(Doctrine)
<?php
$table = Doctrine_Query::create()->select('i.name')
    ->from('Item i')
    ->where('i.id = ?', 3)
    ->execute();


又は、Doctrineでwhere句を書かずに
$table = $table -> getId(3);
とかでもいけるかもしれません。(うろ覚え)
PR
全くオブジェクト指向についての勉強をしていないのに、Symfonyのチュートリアルにオブジェクト指向がでまくってきます。困った困った。
ということで、調べたわけではないけれど、きっとこんな感じなのだろうと思ったことをまとめます。

・クラスを表す場合はファイル名を~.class.phpにする

・Javaと書き方はほとんど同じ
public class クラス名
{
・・・
}


・メソッドはなぜかfunction宣言(method宣言ではない)
public function メソッド名
{
・・・
}


・フィールドを持てるか不明
$this->変数名 が変数名なのかも・・・

・Cライクでアロー演算子(.で繋がない)
$q = $this->getQuery()
・継承可能。implementsはできるか不明
public class クラス名 extends 親クラス名
{
・・・
}

・staticあり。スコープとの順序は気にしなくていいらしい
static public getSource()
{
・・・
}



とりあえずこんな感じ!!

僕はとにかくPHPが嫌いです!
いきなり何やねん!って話ですが・・・

僕は元々、Java勉強してた人間なので、いかんせんPHPに慣れません。むしろ、嫌いに近いです。
ということで、僕の嫌いなPHPを紹介したいと思います。



1.変数に宣言がない
PHPでは変数は$で表し、書く側としては型なんて考える必要がなさそうです。(プログラム側としては認識しているかもしれないですが・・・)
いつでもどこでも変数は$なので、既存の変数なのか新規の変数なのかもサッパリ。

たとえば以下
<?php
$change = "変更前です";
$chenge = "変更後です";
print($change);
?>

おっと。
二行目で変数名のaとeを間違えてしまいました。
PHPだと、こういったミスをしたときにエラーを返してくれないのでツラいです。

これをJavaで書くとすればこんなでしょうか。
public static void main(String[] args) {
String change = "変更前です";
chenge = "変更後です";
System.out.print(change);

余裕で3行目でエラーを返してくれます。(chengeが解決できない)
プログラマ想いの言語ですよね。

 


2.{}の位置が嫌い
これはPHPだから!という話ではなくて、どの言語でも当てはまるのですが、
現在Symfonyを使っていて、コーディング規約で以下があるんです。
・{は行の始めに書くこと
つまり、こんなカンジです。
<?php
public function func()
{
・・・
}
?>

僕は本当にこの書き方が大っ嫌いなんです。見づらくて仕方がない。やっぱ、こう書きたいですよね。
<?php
public function func() {
・・・
}
?>

 

3.条件文の中で代入できる
これはC系にも当てはまることですが、以下が可能です。
if($buf = $query)

つまり、bufにqueryを代入して、その中身があったらtrueを返すってこと。
1行の中で二つのことをしていて、わかりづらいです><
Javaでは多分こんなことできません。
String buf = query;
if(!buf.equals(""))

 

PHPってめんどくさいよねー。

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]