回答編集履歴
22
追記
test
CHANGED
@@ -90,6 +90,12 @@
|
|
90
90
|
|
91
91
|
xmlなので不等号(< や >)などのSQL文中にそのまま記述できないエスケープ文字がありましたね、そういえば。
|
92
92
|
|
93
|
+
※CDATAについて指摘があったので、追記。何れにせよエスケープ文字はあります。
|
94
|
+
|
95
|
+
> CDATAセクションは、 <や&をエスケープしなくてよい場所ですが、 ]]>という文字列が含まれる場合には ]]>のようにエスケープする必要があります。
|
96
|
+
|
97
|
+
|
98
|
+
|
93
99
|
|
94
100
|
|
95
101
|
じゃ、iniファイルではどうかというと、
|
21
修正
test
CHANGED
@@ -100,7 +100,7 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
と
|
103
|
+
何れにせよフォーマットがあるなら、エスケープ文字は付きまとうでしょうから、結局のところ、プレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
104
104
|
|
105
105
|
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
106
106
|
|
20
追記
test
CHANGED
@@ -103,3 +103,5 @@
|
|
103
103
|
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
104
104
|
|
105
105
|
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
106
|
+
|
107
|
+
※もう古いですが([S2Dao.PHP5](http://s2dao.php5.seasar.org/))
|
19
追記
test
CHANGED
@@ -101,3 +101,5 @@
|
|
101
101
|
|
102
102
|
|
103
103
|
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
104
|
+
|
105
|
+
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
18
修正
test
CHANGED
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
実際XMLでSQLを外出しにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
90
90
|
|
91
|
-
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字
|
91
|
+
xmlなので不等号(< や >)などのSQL文中にそのまま記述できないエスケープ文字がありましたね、そういえば。
|
92
92
|
|
93
93
|
|
94
94
|
|
17
推敲
test
CHANGED
@@ -100,4 +100,4 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[
|
103
|
+
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
16
推敲
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
------
|
88
88
|
|
89
|
-
実際XMLでSQLを外
|
89
|
+
実際XMLでSQLを外出しにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
90
90
|
|
91
91
|
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字というのがありましたね、そういえば。
|
92
92
|
|
15
追記
test
CHANGED
@@ -81,3 +81,23 @@
|
|
81
81
|
|
82
82
|
|
83
83
|
逆にどういった点を使いにくいと思われたのでしょう?
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
------
|
88
|
+
|
89
|
+
実際XMLでSQLを外だしにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
90
|
+
|
91
|
+
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字というのがありましたね、そういえば。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
じゃ、iniファイルではどうかというと、
|
96
|
+
|
97
|
+
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
98
|
+
|
99
|
+
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[str_getcsv()](http://www.php.net/manual/ja/function.str-getcsv.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
14
推敲
test
CHANGED
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
74
74
|
|
75
|
-
4.
|
75
|
+
4.読み出すのにどの道必要ですから、タグとして識別子を設定
|
76
76
|
|
77
77
|
|
78
78
|
|
13
追記
test
CHANGED
@@ -73,3 +73,11 @@
|
|
73
73
|
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
74
74
|
|
75
75
|
4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
> XMLやJSONを見ましたが、SQL文を外だしするという用途には、少し使いにくいような気がします。
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
逆にどういった点を使いにくいと思われたのでしょう?
|
12
追記
test
CHANGED
@@ -45,3 +45,31 @@
|
|
45
45
|
|
46
46
|
|
47
47
|
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
追記2
|
52
|
+
|
53
|
+
--
|
54
|
+
|
55
|
+
質問の追記を見落としてましたので追記。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
> 1(コメントを書ける)
|
60
|
+
|
61
|
+
> 2(join・サブクエリなどを利用すると長くなるので改行したい)
|
62
|
+
|
63
|
+
> 4(コメントと合わせて理解しやすいように重複しないユニークなエイリアスを付けたい。
|
64
|
+
|
65
|
+
> および、iniファイルのようなname=value型の構造をイメージしていた)
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
上記からするとXMLじゃないでしょうか。
|
70
|
+
|
71
|
+
1.SQL文中には使用するDBMSのコメントが書けるし、XMLでのコメントも書ける。
|
72
|
+
|
73
|
+
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
74
|
+
|
75
|
+
4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
|
11
追記
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
そのファイル自体のメンテナンスとプログラムから読み込むということで、テキスト
|
5
|
+
そのファイル自体のメンテナンスとプログラムから読み込むということで、プレーンテキストで良いのじゃないでしょうか。
|
6
6
|
|
7
7
|
一般的なテキストエディタならSQLでのキーワードなどの強調文字などに対応していますし、文字コードの変更もしやすいですから。
|
8
8
|
|
@@ -10,7 +10,9 @@
|
|
10
10
|
|
11
11
|
[PHP内からの.sqlファイルの読み込みphp](https://code.i-harness.com/ja/q/2416d)
|
12
12
|
|
13
|
-
PHPには詳しくありませんが、
|
13
|
+
PHPには詳しくありませんが、プレースホルダを含めた形のSQLでも多分実行できると思います。
|
14
|
+
|
15
|
+
※同然プレースフォルダの値設定の処理は必要です。まあ、そこらへんは質問者さんは分かっておられると思いますけど。
|
14
16
|
|
15
17
|
但し、他の言語との互換性は低くなるでしょうが。
|
16
18
|
|
@@ -26,6 +28,10 @@
|
|
26
28
|
|
27
29
|
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
28
30
|
|
31
|
+
類似処理を一つのファイルに纏めるなどの拡張性を考えるとタグで管理できる、
|
32
|
+
|
33
|
+
XMLの方が良いかもしれませんね。
|
34
|
+
|
29
35
|
|
30
36
|
|
31
37
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
10
修正
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
37
|
+
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルール等はきちんと決めて文書化しておかなければいけませんね。
|
38
38
|
|
39
39
|
|
40
40
|
|
9
修正
test
CHANGED
@@ -35,3 +35,7 @@
|
|
35
35
|
|
36
36
|
|
37
37
|
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
8
推敲
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
32
32
|
|
33
|
-
デメリットの方が大きいとするのは、
|
33
|
+
デメリットの方が大きいとするのは、関係が不明瞭になる、ってことですかね。
|
34
34
|
|
35
35
|
|
36
36
|
|
7
修正
test
CHANGED
@@ -34,4 +34,4 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
モデル
|
37
|
+
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
6
追記
test
CHANGED
@@ -25,3 +25,13 @@
|
|
25
25
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
26
26
|
|
27
27
|
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
32
|
+
|
33
|
+
デメリットの方が大きいとするのは、人は忘れるものだからって、ことですかね。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
モデルの構成要素が複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
5
推敲
test
CHANGED
@@ -24,4 +24,4 @@
|
|
24
24
|
|
25
25
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
26
26
|
|
27
|
-
この持ち方だと、修正などの影響範囲を少なくする事ができますね。
|
27
|
+
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
4
推敲
test
CHANGED
@@ -24,4 +24,4 @@
|
|
24
24
|
|
25
25
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
26
26
|
|
27
|
-
この持ち方だと、
|
27
|
+
この持ち方だと、修正などの影響範囲を少なくする事ができますね。
|
3
追記
test
CHANGED
@@ -24,4 +24,4 @@
|
|
24
24
|
|
25
25
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
26
26
|
|
27
|
-
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1に
|
27
|
+
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1に出来そうですね。
|
2
追記
test
CHANGED
@@ -13,3 +13,15 @@
|
|
13
13
|
PHPには詳しくありませんが、バインド変数を含めた形のSQLでも多分実行できると思います。
|
14
14
|
|
15
15
|
但し、他の言語との互換性は低くなるでしょうが。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
追記
|
20
|
+
|
21
|
+
--
|
22
|
+
|
23
|
+
質問者さんの参考にされたページのリンクに以下があります。
|
24
|
+
|
25
|
+
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
26
|
+
|
27
|
+
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1にも出来そうですね。
|
1
追記
test
CHANGED
@@ -4,9 +4,11 @@
|
|
4
4
|
|
5
5
|
そのファイル自体のメンテナンスとプログラムから読み込むということで、テキストファイルでいいのじゃないでしょうか。
|
6
6
|
|
7
|
-
|
7
|
+
一般的なテキストエディタならSQLでのキーワードなどの強調文字などに対応していますし、文字コードの変更もしやすいですから。
|
8
8
|
|
9
9
|
|
10
|
+
|
11
|
+
[PHP内からの.sqlファイルの読み込みphp](https://code.i-harness.com/ja/q/2416d)
|
10
12
|
|
11
13
|
PHPには詳しくありませんが、バインド変数を含めた形のSQLでも多分実行できると思います。
|
12
14
|
|