回答編集履歴

22

追記

2018/03/27 17:26

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -90,6 +90,12 @@
90
90
 
91
91
  xmlなので不等号(< や >)などのSQL文中にそのまま記述できないエスケープ文字がありましたね、そういえば。
92
92
 
93
+ ※CDATAについて指摘があったので、追記。何れにせよエスケープ文字はあります。
94
+
95
+ > CDATAセクションは、 <や&をエスケープしなくてよい場所ですが、 ]]>という文字列が含まれる場合には ]]&gt;のようにエスケープする必要があります。
96
+
97
+
98
+
93
99
 
94
100
 
95
101
  じゃ、iniファイルではどうかというと、

21

修正

2018/03/27 17:26

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -100,7 +100,7 @@
100
100
 
101
101
 
102
102
 
103
- ことで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
103
+ 何れにせよフォーマットがあるなら、エスケープ文字は付きまとうでしょうから結局のところ、プレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
104
104
 
105
105
  java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
106
106
 

20

追記

2018/03/24 18:38

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 18:31

投稿

sazi
sazi

スコア25195

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

修正

2018/03/24 18:23

投稿

sazi
sazi

スコア25195

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

推敲

2018/03/24 18:10

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -100,4 +100,4 @@
100
100
 
101
101
 
102
102
 
103
- ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[str_getcsv()](http://www.php.net/manual/ja/function.str-getcsv.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
103
+ ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。

16

推敲

2018/03/24 18:03

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 17:59

投稿

sazi
sazi

スコア25195

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

推敲

2018/03/24 17:59

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
74
74
 
75
- 4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
75
+ 4.読み出すのにどの道必要ですから、タグとして識別子を設定
76
76
 
77
77
 
78
78
 

13

追記

2018/03/24 17:34

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 17:27

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 17:24

投稿

sazi
sazi

スコア25195

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には詳しくありませんが、バインド変数を含めた形のSQLでも多分実行できると思います。
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

修正

2018/03/24 17:11

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
37
+ モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
38
38
 
39
39
 
40
40
 

9

修正

2018/03/24 16:05

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -35,3 +35,7 @@
35
35
 
36
36
 
37
37
  モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
38
+
39
+
40
+
41
+ 責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。

8

推敲

2018/03/24 16:04

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  私も分離した方が可読性は良くなるなどのメリットはあると思っています。
32
32
 
33
- デメリットの方が大きいとするのは、人は忘れものだからってことですかね。
33
+ デメリットの方が大きいとするのは、関係が不明瞭になってことですかね。
34
34
 
35
35
 
36
36
 

7

修正

2018/03/24 15:57

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -34,4 +34,4 @@
34
34
 
35
35
 
36
36
 
37
- モデルの構成要素が複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
37
+ モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。

6

追記

2018/03/24 15:56

投稿

sazi
sazi

スコア25195

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

推敲

2018/03/24 15:54

投稿

sazi
sazi

スコア25195

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

推敲

2018/03/24 15:33

投稿

sazi
sazi

スコア25195

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
+ この持ち方だと、修正などの影響範囲少なくす事がきますね。

3

追記

2018/03/24 15:32

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 15:26

投稿

sazi
sazi

スコア25195

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

追記

2018/03/24 15:23

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -4,9 +4,11 @@
4
4
 
5
5
  そのファイル自体のメンテナンスとプログラムから読み込むということで、テキストファイルでいいのじゃないでしょうか。
6
6
 
7
- [PHP内からの.sqlファイル読み込みphp](https://code.i-harness.com/ja/q/2416d)
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