teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

43

微調整

2019/11/15 01:35

投稿

退会済みユーザー
answer CHANGED
@@ -298,7 +298,7 @@
298
298
  - コードを追う (コードの理解)
299
299
 
300
300
   
301
- > 今回の NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
301
+ > コード理解のための NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
302
302
  > **サンプルコード の「処理の流れ」と「変数の値」を調べるために** 使います
303
303
  >  
304
304
  > どんなツールも初めは大変ですが、すぐに慣れます

42

微調整

2019/11/15 01:35

投稿

退会済みユーザー
answer CHANGED
@@ -291,14 +291,14 @@
291
291
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
292
292
  ##### 「NetBeans IDE デバッグ機能」 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
293
293
 
294
- > NetBeans IDE デバッグ機能
294
+ > NetBeans IDE デバッグ機能 には、2通りの使い方があります
295
295
  >
296
296
  - バグを見つける (本来のデバッグ)
297
297
  >
298
298
  - コードを追う (コードの理解)
299
299
 
300
300
   
301
- > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
301
+ > 今回の NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
302
302
  > **サンプルコード の「処理の流れ」と「変数の値」を調べるために** 使います
303
303
  >  
304
304
  > どんなツールも初めは大変ですが、すぐに慣れます

41

微調整

2019/11/03 00:56

投稿

退会済みユーザー
answer CHANGED
@@ -21,7 +21,6 @@
21
21
  >  
22
22
  > [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
23
23
  > [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
24
- > [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html) (Mac ユーザ の NetBeans IDE 使用)
25
24
 
26
25
  パーフェクトPHP をデバッグしました (学習方法) や
27
26
  パーフェクトPHP をデバッグしました (やる気のある初心者) に

40

微調整

2019/09/10 00:40

投稿

退会済みユーザー
answer CHANGED
@@ -293,8 +293,9 @@
293
293
  ##### 「NetBeans IDE デバッグ機能」 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
294
294
 
295
295
  > NetBeans IDE デバッグ機能
296
+ >
296
297
  - バグを見つける (本来のデバッグ)
297
- >
298
+ >
298
299
  - コードを追う (コードの理解)
299
300
 
300
301
   

39

微調整

2019/09/06 01:09

投稿

退会済みユーザー
answer CHANGED
@@ -264,7 +264,7 @@
264
264
  MiniBlogApplication.php に**エラーが無い場合**
265
265
  DbManager.php と Application.php のコード提示をしてもらう予定
266
266
  ...
267
- __ (MiniBlogApplication.php にエラーがあったので、コードの提示は必要無くなった) __
267
+ (__MiniBlogApplication.php__ にエラーがあったので、コードの提示は必要無くなった)
268
268
 
269
269
  ---
270
270
 
@@ -292,15 +292,20 @@
292
292
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
293
293
  ##### 「NetBeans IDE デバッグ機能」 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
294
294
 
295
+ > NetBeans IDE デバッグ機能
296
+ - バグを見つける (本来のデバッグ)
295
- >  
297
+ >
298
+ - コードを追う (コードの理解)
299
+
300
+  
296
301
  > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
297
302
  > **サンプルコード の「処理の流れ」と「変数の値」を調べるために** 使います
298
303
  >  
299
304
  > どんなツールも初めは大変ですが、すぐに慣れます
300
305
  > 特に、**初心者の方** には効果が大きいです 
301
306
  > [**デバッグ例**](http://beginner001.html.xdomain.jp/debug-04.html#NetBeans_debug_example)
302
- >  
303
307
 
308
+
304
309
  詳細は、**参考サイトのリンク** をご覧ください
305
310
 
306
311
  ---

38

微調整

2019/09/05 06:03

投稿

退会済みユーザー
answer CHANGED
@@ -51,6 +51,7 @@
51
51
  注意点
52
52
  - 公式サイト **サンプルコード(mini-blog.zip)** を使用 (不具合 2ヶ所修正)
53
53
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
54
+ - index.php ではなく index**_dev**.php を使用します
54
55
 
55
56
  > サンプルコードの仕様 と orangefarmerさんの仕様 との違い (ホームページ表示とログイン)
56
57
   
@@ -339,4 +340,8 @@
339
340
  ` $this->setDebugMode($debug);`
340
341
  ` $this->initialize();`
341
342
  ` $this->configure();` ← **空** のメソッドのまま co**n**figure (データベースへの接続設定 が **未定義**)
342
- ` }`
343
+ ` }`
344
+
345
+ ##### 上記エラーで、フレームワークとオブジェクト指向の「考え方」が良く分かります
346
+
347
+ ---

37

微調整

2019/09/03 01:03

投稿

退会済みユーザー
answer CHANGED
@@ -262,9 +262,9 @@
262
262
 
263
263
  MiniBlogApplication.php に**エラーが無い場合**
264
264
  DbManager.php と Application.php のコード提示をしてもらう予定
265
+ ...
266
+ __ (MiniBlogApplication.php にエラーがあったので、コードの提示は必要無くなった) __
265
267
 
266
- (MiniBlogApplication.php にエラーがあったので、コードの提示は必要無くなった)
267
-
268
268
  ---
269
269
 
270
270
  **【修正箇所が分かる & NetBeans IDE デバッグ機能】**

36

微調整

2019/08/31 01:22

投稿

退会済みユーザー
answer CHANGED
@@ -293,9 +293,12 @@
293
293
 
294
294
  >  
295
295
  > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
296
- > 処理の流れ と 変数の値 が分かることで
297
- > **「フレムワーク内部」と「オブジェクト指向」を理解するために使います**
296
+ > **サンプルコ「処理の流れ」と「変数の値」を調べるために** 使います
298
297
  >  
298
+ > どんなツールも初めは大変ですが、すぐに慣れます
299
+ > 特に、**初心者の方** には効果が大きいです 
300
+ > [**デバッグ例**](http://beginner001.html.xdomain.jp/debug-04.html#NetBeans_debug_example)
301
+ >  
299
302
 
300
303
  詳細は、**参考サイトのリンク** をご覧ください
301
304
 

35

微調整

2019/08/31 01:02

投稿

退会済みユーザー
answer CHANGED
@@ -69,7 +69,7 @@
69
69
  - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
70
70
 
71
71
  デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
72
- orangefarmerさんの仕様 に合わせるため、強引に **未ログイン状態 可** にしています
72
+ orangefarmerさんの仕様 に合わせるため、強引に **未ログイン状態 可** にしています
73
73
 
74
74
  参考
75
75
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)

34

微調整

2019/08/30 02:13

投稿

退会済みユーザー
answer CHANGED
@@ -69,6 +69,7 @@
69
69
  - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
70
70
 
71
71
  デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
72
+ orangefarmerさんの仕様 に合わせるために、強引に **未ログイン状態 可** にしています
72
73
 
73
74
  参考
74
75
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)

33

微調整

2019/08/30 02:07

投稿

退会済みユーザー
answer CHANGED
@@ -103,7 +103,7 @@
103
103
  [NetBeans デバッグ方法](http://beginner001.html.xdomain.jp/debug-04.html) 参照
104
104
 
105
105
  **原因**
106
- > デバッグを実行すると、最後に **エラーが再現** されます
106
+ > デバッグを実行すると、最後に **エラーが再現** されます
107
107
  >  
108
108
  > 「正しい」**データベースへの接続設定 (PDO インスタンス)** の
109
109
  **$this->con** を「壊しています」

32

微調整

2019/08/30 01:55

投稿

退会済みユーザー
answer CHANGED
@@ -102,7 +102,7 @@
102
102
  **注 Session 49 は、ブレークポイントではありません**
103
103
  [NetBeans デバッグ方法](http://beginner001.html.xdomain.jp/debug-04.html) 参照
104
104
 
105
- >  
105
+ **原因**
106
106
  > デバッグを実行すると、最後に **エラーが再現** されます
107
107
  >  
108
108
  > 「正しい」**データベースへの接続設定 (PDO インスタンス)** の
@@ -111,7 +111,6 @@
111
111
  > (DbRepository 41* **$this->con** false に変更)
112
112
  >  
113
113
  > エラーの原因は、**DB への接続ミス**です
114
- >  
115
114
 
116
115
  Application.php
117
116
  ```PHP

31

微調整

2019/08/28 07:28

投稿

退会済みユーザー
answer CHANGED
@@ -64,7 +64,7 @@
64
64
  >>
65
65
  - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** で 処理は中断)
66
66
  >>
67
- - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
67
+ - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の がセットされます
68
68
  >>
69
69
  - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
70
70
 

30

微調整

2019/08/28 01:18

投稿

退会済みユーザー
answer CHANGED
@@ -52,8 +52,8 @@
52
52
  - 公式サイト **サンプルコード(mini-blog.zip)** を使用 (不具合 2ヶ所修正)
53
53
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
54
54
 
55
- サンプルコードの仕様 と orangefarmerさんの仕様 との違い (ホームページ表示とログイン)
55
+ > サンプルコードの仕様 と orangefarmerさんの仕様 との違い (ホームページ表示とログイン)
56
-
56
+  
57
57
  > サンプルコードの仕様
58
58
  >>
59
59
  - ホームページは、**ログイン後**に表示されます
@@ -62,7 +62,7 @@
62
62
 
63
63
  > orangefarmerさんの仕様
64
64
  >>
65
- - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** で 表示は中断)
65
+ - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** で 処理は中断)
66
66
  >>
67
67
  - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
68
68
  >>
@@ -104,7 +104,10 @@
104
104
 
105
105
  >  
106
106
  > デバッグを実行すると、最後に **エラーが再現** されます
107
+ >  
107
- > 「正しい」**データベースへの接続設定 (PDO インスタンス)** の **$this->con** を「壊しています」
108
+ > 「正しい」**データベースへの接続設定 (PDO インスタンス)** の
109
+ **$this->con** を「壊しています」
110
+ >  
108
111
  > (DbRepository 41* **$this->con** false に変更)
109
112
  >  
110
113
  > エラーの原因は、**DB への接続ミス**です
@@ -283,7 +286,7 @@
283
286
  - ホームページのデータ件数 ゼロ
284
287
  - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
285
288
  - ログイン機能のデバッグ (or 実装)
286
- - 写経 未完成 (ルーティング registerRoutes) **画像** MiniBlogApplication.phpの比較 参照
289
+ - 写経 未完成 (ルーティング registerRoutes 参照) **画像** MiniBlogApplication.phpの比較
287
290
 
288
291
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
289
292
  ##### 「NetBeans IDE デバッグ機能」 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
@@ -291,7 +294,7 @@
291
294
  >  
292
295
  > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
293
296
  > 処理の流れ と 変数の値 が分かることで
294
- > 「フレームワークの内部」と「オブジェクト指向」を理解するために使います
297
+ > **「フレームワークの内部」と「オブジェクト指向」を理解するために使います**
295
298
  >  
296
299
 
297
300
  詳細は、**参考サイトのリンク** をご覧ください

29

微調整

2019/08/28 01:07

投稿

退会済みユーザー
answer CHANGED
@@ -49,7 +49,7 @@
49
49
  **NetBeans IDE デバッグ機能** を使った デバッグ です。
50
50
 
51
51
  注意点
52
- - 公式サイト サンプルコード(mini-blog.zip) を使用 (不具合 2ヶ所修正)
52
+ - 公式サイト **サンプルコード(mini-blog.zip)** を使用 (不具合 2ヶ所修正)
53
53
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
54
54
 
55
55
  サンプルコードの仕様 と orangefarmerさんの仕様 との違い (ホームページ表示とログイン)
@@ -173,20 +173,20 @@
173
173
 
174
174
  **【コードを調べる】**
175
175
 
176
- 「**DB への接続** のスタートである」"**new PDO**" を検索 検索ツール(Devas)
176
+ 「**DB への接続** のスタートである」"**new PDO**" を検索 検索ツール(__Devas__)
177
177
  |ファイル|メソッド|
178
178
  |:--|:--|
179
179
  |DbManager.php |public function **connect(**$name, $params)|
180
180
 
181
181
   
182
- "**connect(**" を検索 検索ツール(Devas)
182
+ "**connect(**" を検索 検索ツール(__Devas__)
183
183
  |ファイル|メソッド|
184
184
  |:--|:--|
185
185
  |MiniBlogApplication.php|protected function **configure(**)|
186
186
  |~~DbManager.php~~|~~public function connect($name, $params)~~ 同上|
187
187
 
188
188
   
189
- "**configure(**" を検索 検索ツール(Devas)
189
+ "**configure(**" を検索 検索ツール(__Devas__)
190
190
  |ファイル|メソッド|
191
191
  |:--|:--|
192
192
  |~~MiniBlogApplication.php~~|~~protected function configure()~~ 同上|
@@ -266,8 +266,10 @@
266
266
 
267
267
  **【修正箇所が分かる & NetBeans IDE デバッグ機能】**
268
268
 
269
- 差分ツール (WinMerge) で
269
+ 差分ツール (**__WinMerge__**) で
270
+ MiniBlogApplication.php (サンプルコード) と
270
- サンプルコード の MiniBlogApplication.php orangefarmer さん MiniBlogApplication.php 比較する
271
+ MiniBlogApplication.php (orangefarmer さん)
272
+ 比較する
271
273
 
272
274
 
273
275
  ![MiniBlogApplication.phpの比較](c26d5241bd8a86a8dfe542b1a5973cd8.jpeg)
@@ -281,10 +283,10 @@
281
283
  - ホームページのデータ件数 ゼロ
282
284
  - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
283
285
  - ログイン機能のデバッグ (or 実装)
284
- - 写経 未完成 (ルーティング registerRoutes) **画像** MiniBlogApplication.phpの比較 参照
286
+ - 写経 未完成 (ルーティング registerRoutes) **画像** MiniBlogApplication.phpの比較 参照
285
287
 
286
288
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
287
- ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
289
+ ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
288
290
 
289
291
  >  
290
292
  > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**

28

微調整

2019/08/27 09:02

投稿

退会済みユーザー
answer CHANGED
@@ -21,7 +21,7 @@
21
21
  >  
22
22
  > [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
23
23
  > [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
24
- > [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html) (Mac ユーザ NetBeans IDE 使用)
24
+ > [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html) (Mac ユーザ NetBeans IDE 使用)
25
25
 
26
26
  パーフェクトPHP をデバッグしました (学習方法) や
27
27
  パーフェクトPHP をデバッグしました (やる気のある初心者) に
@@ -270,8 +270,8 @@
270
270
  サンプルコード の MiniBlogApplication.php と orangefarmer さんの MiniBlogApplication.php を比較する
271
271
 
272
272
 
273
- ![MiniBlogApplication.php の比較](c26d5241bd8a86a8dfe542b1a5973cd8.jpeg)
273
+ ![MiniBlogApplication.phpの比較](c26d5241bd8a86a8dfe542b1a5973cd8.jpeg)
274
- クリックすると、拡大表示します
274
+ **画像** MiniBlogApplication.phpの比較 (クリックすると、拡大表示します)
275
275
 
276
276
  正 protected function co**n**figure()
277
277
  誤 protected function cofigure()
@@ -281,7 +281,7 @@
281
281
  - ホームページのデータ件数 ゼロ
282
282
  - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
283
283
  - ログイン機能のデバッグ (or 実装)
284
- - 写経 未完成? (ルーティング registerRoutes) **差分ツール図** 参照
284
+ - 写経 未完成? (ルーティング registerRoutes) **画像** MiniBlogApplication.phpの比較 参照
285
285
 
286
286
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
287
287
  ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)

27

微調整

2019/08/27 02:45

投稿

退会済みユーザー
answer CHANGED
@@ -29,8 +29,8 @@
29
29
 
30
30
   
31
31
  **【パーフェクトPHP デバッグ 動作環境】**
32
- XAMPP 5.6.31
32
+ - XAMPP 5.6.31
33
- NetBeans 8.2
33
+ - NetBeans 8.2
34
34
 
35
35
  > **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
36
36
  > XAMPP 7.x.x でも動作しますが、**Xdebug** の準備が必要です。
@@ -100,6 +100,7 @@
100
100
  |DbRepository|41*|$this->con false に変更|続行 (F5)|
101
101
 
102
102
  **注 Session 49 は、ブレークポイントではありません**
103
+ [NetBeans デバッグ方法](http://beginner001.html.xdomain.jp/debug-04.html) 参照
103
104
 
104
105
  >  
105
106
  > デバッグを実行すると、最後に **エラーが再現** されます
@@ -277,9 +278,10 @@
277
278
 
278
279
   
279
280
  今回のエラーを解決しても、別の不具合が出ます
280
- ホームページのデータ件数 ゼロ
281
+ - ホームページのデータ件数 ゼロ
281
- エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
282
+ - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
282
- ログイン機能のデバッグ (or 実装)
283
+ - ログイン機能のデバッグ (or 実装)
284
+ - 写経 未完成? (ルーティング registerRoutes) **差分ツール図** 参照
283
285
 
284
286
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
285
287
  ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)

26

微調整

2019/08/27 01:58

投稿

退会済みユーザー
answer CHANGED
@@ -21,6 +21,7 @@
21
21
  >  
22
22
  > [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
23
23
  > [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
24
+ > [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html) (Mac ユーザ が NetBeans IDE を使用)
24
25
 
25
26
  パーフェクトPHP をデバッグしました (学習方法) や
26
27
  パーフェクトPHP をデバッグしました (やる気のある初心者) に

25

微調整

2019/08/26 09:26

投稿

退会済みユーザー
answer CHANGED
@@ -51,18 +51,24 @@
51
51
  - 公式サイト サンプルコード(mini-blog.zip) を使用 (不具合 2ヶ所修正)
52
52
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
53
53
 
54
- 仕様 (ホームページ表示とログイン)
54
+ サンプルコードの仕様 と orangefarmerさんの仕様 との違い (ホームページ表示とログイン)
55
+
55
- - サンプルコード の仕様
56
+ > サンプルコードの仕様
57
+ >>
56
58
  - ホームページは、**ログイン後**に表示されます
59
+ >>
57
60
  - ホームページ (エラー ログ #5 Application->runAction('**status**', '**index**', Array))
58
-  
61
+
59
- - orangefarmer さん の仕様
62
+ > orangefarmerさんの仕様
63
+ >>
60
- - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス**)
64
+ - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** で 表示は中断)
65
+ >>
61
66
  - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
67
+ >>
62
68
  - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
63
-  
64
- - デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
65
69
 
70
+ デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
71
+
66
72
  参考
67
73
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
68
74
  - [処理の流れ | アカウント情報管理とログイン](http://beginner001.html.xdomain.jp/debug-02-4.html)
@@ -94,14 +100,13 @@
94
100
 
95
101
  **注 Session 49 は、ブレークポイントではありません**
96
102
 
97
- >
103
+ >  
98
-  
99
- デバッグを実行すると、最後に **エラーが再現** されます
104
+ > デバッグを実行すると、最後に **エラーが再現** されます
100
- 「正しい」**データベースへの接続設定 (PDO インスタンス)** の **$this->con** を「壊しています」
105
+ > 「正しい」**データベースへの接続設定 (PDO インスタンス)** の **$this->con** を「壊しています」
101
- (DbRepository 41* **$this->con** false に変更)
106
+ > (DbRepository 41* **$this->con** false に変更)
102
-  
103
- エラーの原因は、**DB への接続ミス**です
104
- >
107
+ >  
108
+ > エラーの原因は、**DB への接続ミス**です
109
+ >  
105
110
 
106
111
  Application.php
107
112
  ```PHP
@@ -247,13 +252,13 @@
247
252
 
248
253
   
249
254
  **上記 3ファイル の メソッド を調べる**
250
- 上記 3ファイルのうち、orangefarmer さんから コード提示されているのは、
255
+ 3ファイルのうち、orangefarmer さんから コード提示されているのは、
251
256
  MiniBlogApplication.php のみ
252
257
 
253
258
  MiniBlogApplication.php に**エラーが無い場合**
254
259
  DbManager.php と Application.php のコード提示をしてもらう予定
255
260
 
256
- (MiniBlogApplication.php にエラーがあったので、必要無くなった)
261
+ (MiniBlogApplication.php にエラーがあったので、コードの提示は必要無くなった)
257
262
 
258
263
  ---
259
264
 
@@ -278,11 +283,11 @@
278
283
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
279
284
  ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
280
285
 
281
- >
286
+ >  
282
-  
283
- NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
287
+ > NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
288
+ > 処理の流れ と 変数の値 が分かることで
284
- 「フレームワークの内部」と「オブジェクト指向」を理解するために使用します
289
+ > 「フレームワークの内部」と「オブジェクト指向」を理解するために使ます
285
- >
290
+ >  
286
291
 
287
292
  詳細は、**参考サイトのリンク** をご覧ください
288
293
 
@@ -311,7 +316,7 @@
311
316
 
312
317
 
313
318
  Application の **空** の co**n**figure メソッド
314
- エラーが無ければ MiniBlogApplication の **データベースへの接続設定** が Application に反映され
319
+ エラーが無ければ MiniBlogApplication の **データベースへの接続設定** が Application に反映されます
315
320
  ` protected function configure()` ← co**n**figure
316
321
  ` {`
317
322
  ` }`

24

微調整

2019/08/26 02:12

投稿

退会済みユーザー
answer CHANGED
@@ -14,16 +14,13 @@
14
14
 
15
15
  参考サイトの紹介です。
16
16
 
17
- >
18
-  
19
- [パーフェクトPHP デバッグ (処理の流れ | ユーザ登録機能作成)](http://beginner001.html.xdomain.jp/debug-02-1.html)
17
+ > [パーフェクトPHP デバッグ (処理の流れ | ユーザ登録機能作成)](http://beginner001.html.xdomain.jp/debug-02-1.html)
20
18
   [パーフェクトPHP デバッグ (チェックポイント)](http://beginner001.html.xdomain.jp/debug-01.html)
21
- [パーフェクトPHP デバッグ (その他)](http://beginner001.html.xdomain.jp/debug-03.html) (具体的な 環境設定手順)
19
+ > [パーフェクトPHP デバッグ (その他)](http://beginner001.html.xdomain.jp/debug-03.html) (具体的な 環境設定手順)
22
- [パーフェクトPHP デバッグ (**NetBeans デバッグ方法**)](http://beginner001.html.xdomain.jp/debug-04.html) (具体的な デバッグ例)
20
+ > [パーフェクトPHP デバッグ (**NetBeans デバッグ方法**)](http://beginner001.html.xdomain.jp/debug-04.html) (具体的な デバッグ例)
23
-  
24
- [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
25
- [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
26
- >
21
+ >  
22
+ > [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
23
+ > [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
27
24
 
28
25
  パーフェクトPHP をデバッグしました (学習方法) や
29
26
  パーフェクトPHP をデバッグしました (やる気のある初心者) に
@@ -34,16 +31,13 @@
34
31
  ・XAMPP 5.6.31
35
32
  ・NetBeans 8.2
36
33
 
34
+ > **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
35
+ > XAMPP 7.x.x でも動作しますが、**Xdebug** の準備が必要です。
36
+ > [XAMPP 7.1.14 と NetBeans IDE 8.2 の不具合](http://beginner001.html.xdomain.jp/debug-03.html#PHP7)
37
- >
37
+ >  
38
-  
39
- **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
40
- XAMPP 7.x.x でも動作しますが、**Xdebug** の準備が必要です。
41
- [XAMPP 7.1.14 と NetBeans IDE 8.2 の不具合](http://beginner001.html.xdomain.jp/debug-03.html#PHP7)
42
-  
43
- サンプルコードは、フレームワークの **使い方** ではなく、
38
+ > サンプルコードは、フレームワークの **使い方** ではなく、
44
- フレームワークとオブジェクト指向の **考え方** について書かれているので
39
+ > フレームワークとオブジェクト指向の **考え方** について書かれているので
45
40
  **バージョンは、関係ありません。**
46
- >
47
41
 
48
42
  ---
49
43
 

23

微調整

2019/08/26 00:53

投稿

退会済みユーザー
answer CHANGED
@@ -14,15 +14,17 @@
14
14
 
15
15
  参考サイトの紹介です。
16
16
 
17
+ >
18
+  
17
19
  [パーフェクトPHP デバッグ (処理の流れ | ユーザ登録機能作成)](http://beginner001.html.xdomain.jp/debug-02-1.html)
18
- [パーフェクトPHP デバッグ (チェックポイント)](http://beginner001.html.xdomain.jp/debug-01.html)
20
+  [パーフェクトPHP デバッグ (チェックポイント)](http://beginner001.html.xdomain.jp/debug-01.html)
19
21
  [パーフェクトPHP デバッグ (その他)](http://beginner001.html.xdomain.jp/debug-03.html) (具体的な 環境設定手順)
20
22
  [パーフェクトPHP デバッグ (**NetBeans デバッグ方法**)](http://beginner001.html.xdomain.jp/debug-04.html) (具体的な デバッグ例)
21
-
23
+  
22
24
  [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
23
25
  [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
26
+ >
24
27
 
25
- 上記リンクの
26
28
  パーフェクトPHP をデバッグしました (学習方法) や
27
29
  パーフェクトPHP をデバッグしました (やる気のある初心者) に
28
30
  書いてありますが、**「写経」はおすすめしません。**
@@ -32,13 +34,16 @@
32
34
  ・XAMPP 5.6.31
33
35
  ・NetBeans 8.2
34
36
 
37
+ >
38
+  
35
39
  **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
36
40
  XAMPP 7.x.x でも動作しますが、**Xdebug** の準備が必要です。
37
41
  [XAMPP 7.1.14 と NetBeans IDE 8.2 の不具合](http://beginner001.html.xdomain.jp/debug-03.html#PHP7)
38
-
42
+  
39
43
  サンプルコードは、フレームワークの **使い方** ではなく、
40
44
  フレームワークとオブジェクト指向の **考え方** について書かれているので
41
45
  **バージョンは、関係ありません。**
46
+ >
42
47
 
43
48
  ---
44
49
 

22

微調整

2019/08/26 00:40

投稿

退会済みユーザー
answer CHANGED
@@ -167,7 +167,7 @@
167
167
 
168
168
  **【コードを調べる】**
169
169
 
170
- "**new PDO**" を検索 検索ツール(Devas)
170
+ 「**DB への接続** のスタートである」"**new PDO**" を検索 検索ツール(Devas)
171
171
  |ファイル|メソッド|
172
172
  |:--|:--|
173
173
  |DbManager.php |public function **connect(**$name, $params)|
@@ -312,6 +312,7 @@
312
312
 
313
313
 
314
314
  Application の **空** の co**n**figure メソッド
315
+ エラーが無ければ MiniBlogApplication の **データベースへの接続設定** が Application に反映される
315
316
  ` protected function configure()` ← co**n**figure
316
317
  ` {`
317
318
  ` }`

21

微調整

2019/08/25 06:23

投稿

退会済みユーザー
answer CHANGED
@@ -287,12 +287,6 @@
287
287
 
288
288
  詳細は、**参考サイトのリンク** をご覧ください
289
289
 
290
- >
291
-  
292
- 経験者「デバッグ環境を作ってください」
293
- 初心者「分かりました」 (... 作り方が分からない?) (... 作れなかった!)
294
- >
295
-
296
290
  ---
297
291
 
298
292
  【エラーの理由】

20

微調整

2019/08/25 03:59

投稿

退会済みユーザー
answer CHANGED
@@ -88,20 +88,22 @@
88
88
  NetBeans **ブレークポイント** (3ヶ所設定 *) と **処理順序**
89
89
  |PHP|行|内容|次のアクション|
90
90
  |:--|--:|:--|:--|
91
- |Application|*184|$controller("status"), $action("index")|続行 (F5)|
91
+ |Application|184*|$controller("status"), $action("index")|続行 (F5)|
92
- |Session|*103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
92
+ |Session|103*|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
93
- |Session|49|$default true に変更 (**上記** 仕様)|続行 (F5)|
93
+ |Session|49 |$default true に変更 (**上記** 仕様)|続行 (F5)|
94
- |DbRepository|*41|$this->con false に変更|続行 (F5)|
94
+ |DbRepository|41*|$this->con false に変更|続行 (F5)|
95
95
 
96
96
  **注 Session 49 は、ブレークポイントではありません**
97
97
 
98
+ >
99
+  
98
100
  デバッグを実行すると、最後に **エラーが再現** されます
99
- 正しい **データベースへの接続設定 (PDO インスタンス)** の $this->con を「壊しています」
101
+ 正しい**データベースへの接続設定 (PDO インスタンス)** の **$this->con** を「壊しています」
100
- (DbRepository *41 **$this->con** false)
102
+ (DbRepository 41* **$this->con** false に変更)
101
-
103
+  
102
104
  エラーの原因は、**DB への接続ミス**です
105
+ >
103
106
 
104
-  
105
107
  Application.php
106
108
  ```PHP
107
109
  ...
@@ -116,7 +118,7 @@
116
118
  181 $controller = $params['controller'];
117
119
  182 $action = $params['action'];
118
120
  183
119
- 184 $this->runAction($controller, $action, $params); /* ブレークポイント */
121
+ 184* $this->runAction($controller, $action, $params); /* ブレークポイント */
120
122
  185 } catch (HttpNotFoundException $e) {
121
123
  186 $this->render404Page($e);
122
124
  187 } catch (UnauthorizedActionException $e) {
@@ -142,7 +144,7 @@
142
144
  ...
143
145
  101 public function isAuthenticated()
144
146
  102 {
145
- 103 return $this->get('_authenticated', false); /* ブレークポイント */
147
+ 103* return $this->get('_authenticated', false); /* ブレークポイント */
146
148
  104 }
147
149
  ...
148
150
  ```
@@ -153,7 +155,7 @@
153
155
  ...
154
156
  39 public function execute($sql, $params = array())
155
157
  40 {
156
- 41 $stmt = $this->con->prepare($sql); /* ブレークポイント $this->con false に変更 */
158
+ 41* $stmt = $this->con->prepare($sql); /* ブレークポイント $this->con false に変更 */
157
159
  42 $stmt->execute($params);
158
160
  43
159
161
  44 return $stmt;
@@ -251,11 +253,12 @@
251
253
 
252
254
  MiniBlogApplication.php に**エラーが無い場合**
253
255
  DbManager.php と Application.php のコード提示をしてもらう予定
256
+
254
257
  (MiniBlogApplication.php にエラーがあったので、必要無くなった)
255
258
 
256
259
  ---
257
260
 
258
- **【修正箇所が分かる】**
261
+ **【修正箇所が分かる & NetBeans IDE デバッグ機能】**
259
262
 
260
263
  差分ツール (WinMerge) で
261
264
  サンプルコード の MiniBlogApplication.php と orangefarmer さんの MiniBlogApplication.php を比較する
@@ -275,8 +278,21 @@
275
278
 
276
279
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
277
280
  ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
281
+
282
+ >
283
+  
284
+ NetBeans IDE デバッグ機能 は、**バグを見つけるためではなく**
285
+ 「フレームワークの内部」と「オブジェクト指向」を理解するために使用します
286
+ >
287
+
278
288
  詳細は、**参考サイトのリンク** をご覧ください
279
289
 
290
+ >
291
+  
292
+ 経験者「デバッグ環境を作ってください」
293
+ 初心者「分かりました」 (... 作り方が分からない?) (... 作れなかった!)
294
+ >
295
+
280
296
  ---
281
297
 
282
298
  【エラーの理由】

19

微調整

2019/08/25 01:50

投稿

退会済みユーザー
answer CHANGED
@@ -163,7 +163,7 @@
163
163
 
164
164
  ---
165
165
 
166
- **【ソースコードを調べる】**
166
+ **【コードを調べる】**
167
167
 
168
168
  "**new PDO**" を検索 検索ツール(Devas)
169
169
  |ファイル|メソッド|

18

微調整

2019/08/25 00:19

投稿

退会済みユーザー
answer CHANGED
@@ -284,14 +284,14 @@
284
284
  子クラスのメソッド名 (cofigure) が親クラスのメソッド名 (co**n**figure) と違うために
285
285
  **オーバライド**ができず、**データベースへの接続設定** が**未定義** のためです。
286
286
 
287
- `class MiniBlogApplication extends Application` ← **extends** (継承)
287
+ `class MiniBlogApplication extends Application` ← **extends** (継承)
288
288
  `{`
289
289
  ` ... 省略`
290
290
  `}`
291
291
 
292
292
 
293
293
  MiniBlogApplication の cofigure メソッド
294
- ` protected function cofigure()` ← **オーバライドできない** (co**n**figure でないため)
294
+ ` protected function cofigure()` ← **オーバライドできない** (co**n**figure でないため)
295
295
  ` {` ↓ 以下 **データベースへの接続設定**
296
296
  ` $this->db_manager->connect('master', array(`
297
297
  ` 'dsn' => 'mysql:dbname=mini_blog;host=localhost;charset=utf8',`
@@ -302,7 +302,7 @@
302
302
 
303
303
 
304
304
  Application の **空** の co**n**figure メソッド
305
- ` protected function configure()` ← co**n**figure
305
+ ` protected function configure()` ← co**n**figure
306
306
  ` {`
307
307
  ` }`
308
308
 
@@ -312,5 +312,5 @@
312
312
  ` {`
313
313
  ` $this->setDebugMode($debug);`
314
314
  ` $this->initialize();`
315
- ` $this->configure();` ← **空** のメソッドのまま co**n**figure (データベースへの接続設定 が **未定義**)
315
+ ` $this->configure();` ← **空** のメソッドのまま co**n**figure (データベースへの接続設定 が **未定義**)
316
316
  ` }`

17

微調整

2019/08/24 05:26

投稿

退会済みユーザー
answer CHANGED
@@ -250,7 +250,7 @@
250
250
  MiniBlogApplication.php のみ
251
251
 
252
252
  MiniBlogApplication.php に**エラーが無い場合**
253
- DbManager.php と Application.php のコード提示してもらう予定
253
+ DbManager.php と Application.php のコード提示してもらう予定
254
254
  (MiniBlogApplication.php にエラーがあったので、必要無くなった)
255
255
 
256
256
  ---

16

微調整

2019/08/23 08:26

投稿

退会済みユーザー
answer CHANGED
@@ -40,21 +40,6 @@
40
40
  フレームワークとオブジェクト指向の **考え方** について書かれているので
41
41
  **バージョンは、関係ありません。**
42
42
 
43
-  
44
- **【Windows MAMP】**
45
- - XAMPP でも同じことができます
46
-
47
- **【Macintosh MAMP】**
48
- - [ついにデバッグの環境が整った](https://blogs.yahoo.co.jp/amegrapsp/41541779.html)
49
- - [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html)
50
- - [ようやく解決の糸口が見つかった](https://blogs.yahoo.co.jp/amegrapsp/41541352.html)
51
-
52
- 上のサイトの管理人は、**プログラム初心者** & **NetBeans IDE デバッグ機能 初めて**
53
- で、「写経」のバグを解決した優秀な方です。
54
-
55
- Macintosh MAMP の **Xdebug** についても書かれています。
56
- 「多分」問合せもできると思います。
57
-
58
43
  ---
59
44
 
60
45
  ####NetBeans デバッグ方法

15

MAMP について 追加

2019/08/23 02:35

投稿

退会済みユーザー
answer CHANGED
@@ -33,13 +33,28 @@
33
33
  ・NetBeans 8.2
34
34
 
35
35
  **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
36
- XAMPP 7.x.x でも動作しますが、Xdebug の準備が必要です。
36
+ XAMPP 7.x.x でも動作しますが、**Xdebug** の準備が必要です。
37
37
  [XAMPP 7.1.14 と NetBeans IDE 8.2 の不具合](http://beginner001.html.xdomain.jp/debug-03.html#PHP7)
38
38
 
39
39
  サンプルコードは、フレームワークの **使い方** ではなく、
40
40
  フレームワークとオブジェクト指向の **考え方** について書かれているので
41
41
  **バージョンは、関係ありません。**
42
42
 
43
+  
44
+ **【Windows MAMP】**
45
+ - XAMPP でも同じことができます
46
+
47
+ **【Macintosh MAMP】**
48
+ - [ついにデバッグの環境が整った](https://blogs.yahoo.co.jp/amegrapsp/41541779.html)
49
+ - [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html)
50
+ - [ようやく解決の糸口が見つかった](https://blogs.yahoo.co.jp/amegrapsp/41541352.html)
51
+
52
+ 上のサイトの管理人は、**プログラム初心者** & **NetBeans IDE デバッグ機能 初めて**
53
+ で、「写経」のバグを解決した優秀な方です。
54
+
55
+ Macintosh MAMP の **Xdebug** についても書かれています。
56
+ 「多分」問合せもできると思います。
57
+
43
58
  ---
44
59
 
45
60
  ####NetBeans デバッグ方法

14

微調整

2019/08/22 03:05

投稿

退会済みユーザー
answer CHANGED
@@ -55,11 +55,11 @@
55
55
  仕様 (ホームページ表示とログイン)
56
56
  - サンプルコード の仕様
57
57
  - ホームページは、**ログイン後**に表示されます
58
- - ホームページ (#5 Application->runAction('**status**', '**index**', Array))
58
+ - ホームページ (エラー ログ #5 Application->runAction('**status**', '**index**', Array))
59
59
   
60
60
  - orangefarmer さん の仕様
61
- - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** のエラー)
61
+ - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス**)
62
- - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
62
+ - エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
63
63
  - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
64
64
   
65
65
  - デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
@@ -70,6 +70,8 @@
70
70
 
71
71
 
72
72
  エラー ログ
73
+ - #5 Application->runAction('**status**', '**index**', Array))
74
+ - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
73
75
  ```
74
76
  #6 C:\xampp\htdocs\php-blog.localhost\web\index_dev.php(7): Application->run()
75
77
  #5 C:\xampp\htdocs\php-blog.localhost\core\Application.php(103): Application->runAction('status', 'index', Array)
@@ -94,7 +96,8 @@
94
96
  **注 Session 49 は、ブレークポイントではありません**
95
97
 
96
98
  デバッグを実行すると、最後に **エラーが再現** されます
97
- 正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています
99
+ 正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています
100
+ (DbRepository *41 **$this->con** false)
98
101
 
99
102
  エラーの原因は、**DB への接続ミス**です
100
103
 
@@ -266,8 +269,9 @@
266
269
 
267
270
   
268
271
  今回のエラーを解決しても、別の不具合が出ます
269
- ホームページのデータ件数 ゼロ
272
+ ホームページのデータ件数 ゼロ
270
- 2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
273
+ ・エラー ログ #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
274
+ ・ログイン機能のデバッグ (or 実装)
271
275
 
272
276
  すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
273
277
  ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
@@ -308,5 +312,5 @@
308
312
  ` {`
309
313
  ` $this->setDebugMode($debug);`
310
314
  ` $this->initialize();`
311
- ` $this->configure();` ← **空** のメソッド co**n**figure (データベースへの接続設定 が **未定義**)
315
+ ` $this->configure();` ← **空** のメソッドのまま co**n**figure (データベースへの接続設定 が **未定義**)
312
316
  ` }`

13

微調整

2019/08/22 01:39

投稿

退会済みユーザー
answer CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  **【エラーの原因】**
48
48
 
49
- **NetBeans IDE デバッグ機能** を使った デバッグ方法 です。
49
+ **NetBeans IDE デバッグ機能** を使った デバッグ です。
50
50
 
51
51
  注意点
52
52
  - 公式サイト サンプルコード(mini-blog.zip) を使用 (不具合 2ヶ所修正)
@@ -265,22 +265,18 @@
265
265
  誤 protected function cofigure()
266
266
 
267
267
   
268
- エラーを解決しても、の不具合が出ます
268
+ 今回のエラーを解決しても、の不具合が出ます
269
- ホームページのデータ件数は、ゼロです
269
+ ホームページのデータ件数 ゼロ
270
- - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
270
+ 2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
271
271
 
272
- 写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
272
+ すべての写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
273
- **ダウンロードした サンプルコード** に変更します
274
-
275
- ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しま
273
+ ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解しましょう (ダウンロードした サンプルコード 使用)
276
274
  詳細は、**参考サイトのリンク** をご覧ください
277
275
 
278
276
  ---
279
277
 
280
278
  【エラーの理由】
281
279
 
282
- **DB への接続ミス** になる理由です。
283
-
284
280
  子クラスのメソッド名 (cofigure) が親クラスのメソッド名 (co**n**figure) と違うために
285
281
  **オーバライド**ができず、**データベースへの接続設定** が**未定義** のためです。
286
282
 

12

サンプルコードの使用

2019/08/21 04:58

投稿

退会済みユーザー
answer CHANGED
@@ -60,9 +60,9 @@
60
60
  - orangefarmer さん の仕様
61
61
  - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** のエラー)
62
62
  - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
63
- - ログインする仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
63
+ - ログインする 仕様の場合、ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
64
64
   
65
- - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
65
+ - デバッグ対策 **下記** NetBeans ブレークポイント Session 49 参照
66
66
 
67
67
  参考
68
68
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
@@ -83,18 +83,18 @@
83
83
  ```
84
84
 
85
85
   
86
- NetBeans **ブレークポイント** (3ヶ所設定) と **処理順序**
86
+ NetBeans **ブレークポイント** (3ヶ所設定 *) と **処理順序**
87
- |ファイル    |行No|内容|次のアクション|
87
+ |PHP|行|内容|次のアクション|
88
88
  |:--|--:|:--|:--|
89
- |Application.php|184|$controller("status"), $action("index")|続行 (F5)|
89
+ |Application|*184|$controller("status"), $action("index")|続行 (F5)|
90
- |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
90
+ |Session|*103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
91
- |Session.php|49|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
91
+ |Session|49|$default true に変更 (**上記** 仕様)|続行 (F5)|
92
- |DbRepository.php|41|$this->con false に変更|続行 (F5)|
92
+ |DbRepository|*41|$this->con false に変更|続行 (F5)|
93
93
 
94
- **注 Session.php 49 は、ブレークポイントではありません**
94
+ **注 Session 49 は、ブレークポイントではありません**
95
95
 
96
96
  デバッグを実行すると、最後に **エラーが再現** されます
97
- (正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています)
97
+ 正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています
98
98
 
99
99
  エラーの原因は、**DB への接続ミス**です
100
100
 
@@ -195,7 +195,7 @@
195
195
  26 'options' => array(),
196
196
  27 ), $params);
197
197
  28
198
- 29 $con = new PDO(
198
+ 29 $con = new PDO( /* "new PDO" を検索 */
199
199
  30 $params['dsn'],
200
200
  31 $params['user'],
201
201
  32 $params['password'],
@@ -247,7 +247,7 @@
247
247
  MiniBlogApplication.php のみ
248
248
 
249
249
  MiniBlogApplication.php に**エラーが無い場合**
250
- DbManager.php と Application.php のコード提示してもらう予定です
250
+ DbManager.php と Application.php のコード提示してもらう予定
251
251
  (MiniBlogApplication.php にエラーがあったので、必要無くなった)
252
252
 
253
253
  ---
@@ -264,6 +264,17 @@
264
264
  正 protected function co**n**figure()
265
265
  誤 protected function cofigure()
266
266
 
267
+  
268
+ エラーを解決しても、次の不具合が出ます
269
+ ホームページのデータ件数は、ゼロです
270
+ - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**)
271
+
272
+ 写経のエラーを解決しても、フレームワークの内部とオブジェクト指向は理解できません
273
+ **ダウンロードした サンプルコード** に変更します
274
+
275
+ ##### NetBeans IDE デバッグ機能 使って「フレームワークの内部」と「オブジェクト指向」を理解します
276
+ 詳細は、**参考サイトのリンク** をご覧ください
277
+
267
278
  ---
268
279
 
269
280
  【エラーの理由】

11

微調整

2019/08/21 02:33

投稿

退会済みユーザー
answer CHANGED
@@ -96,7 +96,7 @@
96
96
  デバッグを実行すると、最後に **エラーが再現** されます
97
97
  (正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています)
98
98
 
99
- 原因は、**DB への接続ミス**です
99
+ エラーの原因は、**DB への接続ミス**です
100
100
 
101
101
   
102
102
  Application.php

10

微調整

2019/08/20 07:20

投稿

退会済みユーザー
answer CHANGED
@@ -83,13 +83,13 @@
83
83
  ```
84
84
 
85
85
   
86
- NetBeans **ブレークポイント** (3ヶ所設定 *) と **処理順序**
86
+ NetBeans **ブレークポイント** (3ヶ所設定) と **処理順序**
87
87
  |ファイル    |行No|内容|次のアクション|
88
88
  |:--|--:|:--|:--|
89
- |Application.php|*184|$controller("status"), $action("index")|続行 (F5)|
89
+ |Application.php|184|$controller("status"), $action("index")|続行 (F5)|
90
- |Session.php|*103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
90
+ |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
91
91
  |Session.php|49|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
92
- |DbRepository.php|*41|$this->con false に変更|続行 (F5)|
92
+ |DbRepository.php|41|$this->con false に変更|続行 (F5)|
93
93
 
94
94
  **注 Session.php 49 は、ブレークポイントではありません**
95
95
 

9

微調整

2019/08/20 07:04

投稿

退会済みユーザー
answer CHANGED
@@ -53,14 +53,14 @@
53
53
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
54
54
 
55
55
  仕様 (ホームページ表示とログイン)
56
- - サンプルコード 仕様
56
+ - サンプルコード 仕様
57
57
  - ホームページは、**ログイン後**に表示されます
58
58
  - ホームページ (#5 Application->runAction('**status**', '**index**', Array))
59
59
   
60
- - orangefarmer さん 仕様
60
+ - orangefarmer さん 仕様
61
- - **未ログイン**で、ホームページ表示が実行されます (今回はエラー)
61
+ - **未ログイン**で、ホームページ表示が実行されます (今回は **DB への接続ミス** のエラー)
62
- - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) (本来は $user['id'] の値がセットされます)
62
+ - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) 本来は、NULLの部分に ログインユーザ ($user['id']) の値がセットされます
63
- - ログインする仕様だと、表示前に userテーブル使用で **DB への接続ミス** が発生します
63
+ - ログインする仕様の場合ホームページ表示前に userテーブル使用で **DB への接続ミス** が発生します
64
64
   
65
65
  - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
66
66
 
@@ -83,17 +83,19 @@
83
83
  ```
84
84
 
85
85
   
86
- NetBeans **ブレークポイント** (3ヶ所設定) と **処理順序**
86
+ NetBeans **ブレークポイント** (3ヶ所設定 *) と **処理順序**
87
87
  |ファイル    |行No|内容|次のアクション|
88
88
  |:--|--:|:--|:--|
89
- |Application.php|184|$controller("status"), $action("index")|続行 (F5)|
89
+ |Application.php|*184|$controller("status"), $action("index")|続行 (F5)|
90
- |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
90
+ |Session.php|*103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
91
91
  |Session.php|49|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
92
- |DbRepository.php|41|$this->con false に変更|続行 (F5)|
92
+ |DbRepository.php|*41|$this->con false に変更|続行 (F5)|
93
93
 
94
94
  **注 Session.php 49 は、ブレークポイントではありません**
95
95
 
96
96
  デバッグを実行すると、最後に **エラーが再現** されます
97
+ (正しい **データベースへの接続設定 (PDO インスタンス)** $this->con を壊しています)
98
+
97
99
  原因は、**DB への接続ミス**です
98
100
 
99
101
   
@@ -111,7 +113,7 @@
111
113
  181 $controller = $params['controller'];
112
114
  182 $action = $params['action'];
113
115
  183
114
- 184 $this->runAction($controller, $action, $params);
116
+ 184 $this->runAction($controller, $action, $params); /* ブレークポイント */
115
117
  185 } catch (HttpNotFoundException $e) {
116
118
  186 $this->render404Page($e);
117
119
  187 } catch (UnauthorizedActionException $e) {
@@ -132,12 +134,12 @@
132
134
  46 return $_SESSION[$name];
133
135
  47 }
134
136
  48
135
- 49 return $default;
137
+ 49 return $default; /* $default true に変更 */
136
138
  50 }
137
139
  ...
138
140
  101 public function isAuthenticated()
139
141
  102 {
140
- 103 return $this->get('_authenticated', false);
142
+ 103 return $this->get('_authenticated', false); /* ブレークポイント */
141
143
  104 }
142
144
  ...
143
145
  ```
@@ -148,7 +150,7 @@
148
150
  ...
149
151
  39 public function execute($sql, $params = array())
150
152
  40 {
151
- 41 $stmt = $this->con->prepare($sql);
153
+ 41 $stmt = $this->con->prepare($sql); /* ブレークポイント $this->con false に変更 */
152
154
  42 $stmt->execute($params);
153
155
  43
154
156
  44 return $stmt;
@@ -246,7 +248,7 @@
246
248
 
247
249
  MiniBlogApplication.php に**エラーが無い場合**
248
250
  DbManager.php と Application.php のコード提示してもらう予定です
249
- (必要無くなった)
251
+ (MiniBlogApplication.php にエラーがあったので、必要無くなった)
250
252
 
251
253
  ---
252
254
 

8

調整

2019/08/20 07:03

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- ###回答参考サイトの紹介NetBeans デバッグ方法 です
1
+ ###回答』『参考サイトの紹介』『NetBeans デバッグ方法
2
2
 
3
3
  回答です。
4
4
 
@@ -14,9 +14,6 @@
14
14
 
15
15
  参考サイトの紹介です。
16
16
 
17
- 直接の回答ではありません。
18
- (nullbotさんの好意を無駄にしたくないので...)
19
-
20
17
  [パーフェクトPHP デバッグ (処理の流れ | ユーザ登録機能作成)](http://beginner001.html.xdomain.jp/debug-02-1.html)
21
18
  [パーフェクトPHP デバッグ (チェックポイント)](http://beginner001.html.xdomain.jp/debug-01.html)
22
19
  [パーフェクトPHP デバッグ (その他)](http://beginner001.html.xdomain.jp/debug-03.html) (具体的な 環境設定手順)
@@ -30,32 +27,42 @@
30
27
  パーフェクトPHP をデバッグしました (やる気のある初心者) に
31
28
  書いてありますが、**「写経」はおすすめしません。**
32
29
 
33
- サンプルコードを理解すれば、**IDE デバッグ機能**を使って、エラーは解決できます。
30
+  
34
- 当面は、サンプルコドの理解を優先してください。
31
+ **【パフェクトPHP デバッグ 動作環境】**
32
+ ・XAMPP 5.6.31
33
+ ・NetBeans 8.2
35
34
 
35
+ **学習環境**なので XAMPP 7.x.x (PHP 7.x.x) にする必要はありません。
36
- あまり良い方法はありせんが、
36
+ XAMPP 7.x.x も動作しが、Xdebug の準備が必要です。
37
- [差分ツール (WinMerge)](https://winmerge.org/?lang=ja)
37
+ [XAMPP 7.1.14 と NetBeans IDE 8.2 の不具合](http://beginner001.html.xdomain.jp/debug-03.html#PHP7)
38
- 「フォルダ単位に」すべてのソースの違いを一括で調べることもできます。
39
- (あくまで、「写経」の入力ミス チェックです)
40
38
 
39
+ サンプルコードは、フレームワークの **使い方** ではなく、
40
+ フレームワークとオブジェクト指向の **考え方** について書かれているので
41
- 最初大変ですが頑張ってください
41
+ **バージョンは、関係ありません**
42
- 期待しています。
43
42
 
44
43
  ---
44
+
45
45
  ####NetBeans デバッグ方法
46
46
 
47
47
  **【エラーの原因】**
48
48
 
49
- **NetBeans IDE デバッグ機能** を使った 具体的な デバッグ方法 です。
49
+ **NetBeans IDE デバッグ機能** を使った デバッグ方法 です。
50
50
 
51
51
  注意点
52
52
  - 公式サイト サンプルコード(mini-blog.zip) を使用 (不具合 2ヶ所修正)
53
53
  - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
54
54
 
55
55
  仕様 (ホームページ表示とログイン)
56
+ - サンプルコード 仕様
57
+ - ホームページは、**ログイン後**に表示されます
56
- - サンプルコード: ホームページ(#5 Application->runAction('status', 'index', Array))は、ログイン後に表示されます
58
+ - ホームページ (#5 Application->runAction('**status**', '**index**', Array))
59
+  
60
+ - orangefarmer さん 仕様
61
+ - **未ログイン**で、ホームページ表示が実行されます (今回はエラー)
57
- - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で、ホームページ表示実行されます
62
+ - #2 StatusRepository->fetchAllPersonalArchivesByUserId(**NULL**) (本来は $user['id'] の値セットされます)
63
+ - ログインする仕様だと、表示前に userテーブル使用で **DB への接続ミス** が発生します
64
+  
58
- - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
65
+ - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
59
66
 
60
67
  参考
61
68
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
@@ -86,8 +93,8 @@
86
93
 
87
94
  **注 Session.php 49 は、ブレークポイントではありません**
88
95
 
89
- 実行、**エラーが再現**
96
+ デバッグを実行すると最後に **エラーが再現** されます
90
- 原因は、**DB への接続ミス**
97
+ 原因は、**DB への接続ミス**です
91
98
 
92
99
   
93
100
  Application.php
@@ -238,7 +245,8 @@
238
245
  MiniBlogApplication.php のみ
239
246
 
240
247
  MiniBlogApplication.php に**エラーが無い場合**
241
- DbManager.php と Application.php のコード提示してもらう予定
248
+ DbManager.php と Application.php のコード提示してもらう予定です
249
+ (必要無くなった)
242
250
 
243
251
  ---
244
252
 
@@ -260,6 +268,9 @@
260
268
 
261
269
  **DB への接続ミス** になる理由です。
262
270
 
271
+ 子クラスのメソッド名 (cofigure) が親クラスのメソッド名 (co**n**figure) と違うために
272
+ **オーバライド**ができず、**データベースへの接続設定** が**未定義** のためです。
273
+
263
274
  `class MiniBlogApplication extends Application` ← **extends** (継承)
264
275
  `{`
265
276
  ` ... 省略`

7

微調整

2019/08/20 02:17

投稿

退会済みユーザー
answer CHANGED
@@ -27,8 +27,8 @@
27
27
 
28
28
  上記リンクの
29
29
  パーフェクトPHP をデバッグしました (学習方法) や
30
- パーフェクトPHP をデバッグしました (やる気のある初心者)
30
+ パーフェクトPHP をデバッグしました (やる気のある初心者)
31
- 書いてありますが、**「写経」はおすすめしません。**
31
+ 書いてありますが、**「写経」はおすすめしません。**
32
32
 
33
33
  サンプルコードを理解すれば、**IDE デバッグ機能**を使って、エラーは解決できます。
34
34
  当面は、サンプルコードの理解を優先してください。
@@ -54,7 +54,7 @@
54
54
 
55
55
  仕様 (ホームページ表示とログイン)
56
56
  - サンプルコード: ホームページ(#5 Application->runAction('status', 'index', Array))は、ログイン後に表示されます
57
- - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で実行されています
57
+ - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で、ホームページ表示が実行されます
58
58
  - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
59
59
 
60
60
  参考
@@ -76,13 +76,13 @@
76
76
  ```
77
77
 
78
78
   
79
- NetBeans ブレークポイント (**3ヶ所**設定) と 処理順序
79
+ NetBeans **ブレークポイント** (3ヶ所設定) と **処理順序**
80
- |ファイル    |行番号|内容|次のアクション|
80
+ |ファイル    |行No|内容|次のアクション|
81
81
  |:--|--:|:--|:--|
82
- |Application.php|184|$controller("status"), $action("index") 確認|続行 (F5)|
82
+ |Application.php|184|$controller("status"), $action("index")|続行 (F5)|
83
83
  |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
84
84
  |Session.php|49|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
85
- |DbRepository.php|41|$this->con false に変更 (PDO インスタンス 以外)|続行 (F5)|
85
+ |DbRepository.php|41|$this->con false に変更|続行 (F5)|
86
86
 
87
87
  **注 Session.php 49 は、ブレークポイントではありません**
88
88
 
@@ -266,14 +266,18 @@
266
266
  `}`
267
267
 
268
268
 
269
- MiniBlogApplication のメソッド
269
+ MiniBlogApplication の cofigure メソッド
270
270
  ` protected function cofigure()` ← **オーバライドできない** (co**n**figure でないため)
271
- ` {`
272
- ` ... データベースへの接続設定`
271
+ ` {` ↓ 以下 **データベースへの接続設定**
272
+ ` $this->db_manager->connect('master', array(`
273
+ ` 'dsn' => 'mysql:dbname=mini_blog;host=localhost;charset=utf8',`
274
+ ` 'user' => 'root',`
275
+ ` 'password' => '',`
276
+ ` ));`
273
277
  ` }`
274
278
 
275
279
 
276
- Application の**空**のメソッド
280
+ Application の **空** co**n**figure メソッド
277
281
  ` protected function configure()` ← co**n**figure
278
282
  ` {`
279
283
  ` }`
@@ -282,6 +286,7 @@
282
286
  Application のコンストラクタ
283
287
  ` public function __construct($debug = false)`
284
288
  ` {`
289
+ ` $this->setDebugMode($debug);`
285
- ` ... 省略`
290
+ ` $this->initialize();`
286
- ` $this->configure();` ← **空**のメソッド co**n**figure (データベースへの接続設定 が**未定義**)
291
+ ` $this->configure();` ← **空** のメソッド co**n**figure (データベースへの接続設定 が **未定義**)
287
292
  ` }`

6

微調整

2019/08/19 06:23

投稿

退会済みユーザー
answer CHANGED
@@ -76,8 +76,8 @@
76
76
  ```
77
77
 
78
78
   
79
- NetBeans ブレークポイント (**3ヶ所**設定)
79
+ NetBeans ブレークポイント (**3ヶ所**設定) と 処理順序
80
- |ファイル|行|内容|次のアクション|
80
+ |ファイル    |行番号|内容|次のアクション|
81
81
  |:--|--:|:--|:--|
82
82
  |Application.php|184|$controller("status"), $action("index") 確認|続行 (F5)|
83
83
  |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
@@ -233,7 +233,7 @@
233
233
  ```
234
234
 
235
235
   
236
- **上記 3ファイル の関連個所 (メソッド)を調べる**
236
+ **上記 3ファイル の メソッド を調べる**
237
237
  上記 3ファイルのうち、orangefarmer さんから コード提示されているのは、
238
238
  MiniBlogApplication.php のみ
239
239
 

5

エラーの理由 追加

2019/08/19 05:15

投稿

退会済みユーザー
answer CHANGED
@@ -17,20 +17,22 @@
17
17
  直接の回答ではありません。
18
18
  (nullbotさんの好意を無駄にしたくないので...)
19
19
 
20
- teratail
20
+ [パーフェクトPHP デバッグ (処理の流れ | ユーザ登録機能作成)](http://beginner001.html.xdomain.jp/debug-02-1.html)
21
- [パーフェクトphpの7章の例題の変数の中身が知りたい。](https://teratail.com/questions/185638)
21
+ [パーフェクトPHP デバッグ (チェックポイント)](http://beginner001.html.xdomain.jp/debug-01.html)
22
- 「参考サイトの紹介です」の**各リンク**もご覧ください。
22
+ [パーフェクPHP デバッグ (そ他)](http://beginner001.html.xdomain.jp/debug-03.html) (具体的な 環境設定手順)
23
+ [パーフェクトPHP デバッグ (**NetBeans デバッグ方法**)](http://beginner001.html.xdomain.jp/debug-04.html) (具体的な デバッグ例)
23
24
 
24
- 上記リンクの
25
25
  [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
26
26
  [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
27
+
28
+ 上記リンクの
29
+ パーフェクトPHP をデバッグしました (学習方法) や
27
- [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html)
30
+ パーフェクトPHP をデバッグしました (やる気のある初心者)
28
31
  に書いてありますが、**「写経」はおすすめしません。**
29
32
 
30
33
  サンプルコードを理解すれば、**IDE デバッグ機能**を使って、エラーは解決できます。
31
34
  当面は、サンプルコードの理解を優先してください。
32
35
 
33
-
34
36
  あまり良い方法ではありませんが、
35
37
  [差分ツール (WinMerge)](https://winmerge.org/?lang=ja) で
36
38
  「フォルダ単位に」すべてのソースの違いを一括で調べることもできます。
@@ -42,7 +44,7 @@
42
44
  ---
43
45
  ####NetBeans デバッグ方法
44
46
 
45
- **【エラー原因】**
47
+ **【エラー原因】**
46
48
 
47
49
  **NetBeans IDE デバッグ機能** を使った 具体的な デバッグ方法 です。
48
50
 
@@ -53,7 +55,7 @@
53
55
  仕様 (ホームページ表示とログイン)
54
56
  - サンプルコード: ホームページ(#5 Application->runAction('status', 'index', Array))は、ログイン後に表示されます
55
57
  - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で実行されています
56
- - 対策 **下記** NetBeans ブレークポイント (Session.php) (49) 参照
58
+ - 対策 **下記** NetBeans ブレークポイント Session.php 49 参照
57
59
 
58
60
  参考
59
61
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
@@ -74,18 +76,18 @@
74
76
  ```
75
77
 
76
78
   
77
- NetBeans ブレークポイント (3ヶ所設定)
79
+ NetBeans ブレークポイント (**3ヶ所**設定)
78
80
  |ファイル|行|内容|次のアクション|
79
- |:--|:--|:--|:--|
81
+ |:--|--:|:--|:--|
80
82
  |Application.php|184|$controller("status"), $action("index") 確認|続行 (F5)|
81
83
  |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
82
- |(Session.php)|(49)|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
84
+ |Session.php|49|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
83
85
  |DbRepository.php|41|$this->con false に変更 (PDO インスタンス 以外)|続行 (F5)|
84
86
 
85
- **(Session.php) (49) は、ブレークポイントではありません**
87
+ **Session.php 49 は、ブレークポイントではありません**
86
88
 
87
- 実行後、**エラーが再現**されます
89
+ 実行後、**エラーが再現**
88
- 原因は、**DB への接続ミス** です
90
+ 原因は、**DB への接続ミス**
89
91
 
90
92
   
91
93
  Application.php
@@ -231,7 +233,7 @@
231
233
  ```
232
234
 
233
235
   
234
- **上記 3ファイル の関連個所 (メソッド)を調べる**
236
+ **上記 3ファイル の関連個所 (メソッド)を調べる**
235
237
  上記 3ファイルのうち、orangefarmer さんから コード提示されているのは、
236
238
  MiniBlogApplication.php のみ
237
239
 
@@ -250,4 +252,36 @@
250
252
  クリックすると、拡大表示します
251
253
 
252
254
  正 protected function co**n**figure()
253
- 誤 protected function cofigure()
255
+ 誤 protected function cofigure()
256
+
257
+ ---
258
+
259
+ 【エラーの理由】
260
+
261
+ **DB への接続ミス** になる理由です。
262
+
263
+ `class MiniBlogApplication extends Application` ← **extends** (継承)
264
+ `{`
265
+ ` ... 省略`
266
+ `}`
267
+
268
+
269
+ MiniBlogApplication のメソッド
270
+ ` protected function cofigure()` ← **オーバライドできない** (co**n**figure でないため)
271
+ ` {`
272
+ ` ... データベースへの接続設定`
273
+ ` }`
274
+
275
+
276
+ Application の**空**のメソッド
277
+ ` protected function configure()` ← co**n**figure
278
+ ` {`
279
+ ` }`
280
+
281
+
282
+ Application のコンストラクタ
283
+ ` public function __construct($debug = false)`
284
+ ` {`
285
+ ` ... 省略`
286
+ ` $this->configure();` ← **空**のメソッド co**n**figure (データベースへの接続設定 が**未定義**)
287
+ ` }`

4

表 整形

2019/08/19 03:05

投稿

退会済みユーザー
answer CHANGED
@@ -53,7 +53,7 @@
53
53
  仕様 (ホームページ表示とログイン)
54
54
  - サンプルコード: ホームページ(#5 Application->runAction('status', 'index', Array))は、ログイン後に表示されます
55
55
  - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で実行されています
56
- - 対策 **下記** NetBeans ブレークポイント (Session.php) (49行目) 参照
56
+ - 対策 **下記** NetBeans ブレークポイント (Session.php) (49) 参照
57
57
 
58
58
  参考
59
59
  - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
@@ -77,12 +77,12 @@
77
77
  NetBeans ブレークポイント (3ヶ所設定)
78
78
  |ファイル|行|内容|次のアクション|
79
79
  |:--|:--|:--|:--|
80
- |Application.php|184行目|$controller("status"), $action("index") 確認|続行 (F5)|
80
+ |Application.php|184|$controller("status"), $action("index") 確認|続行 (F5)|
81
- |Session.php|103行目|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
81
+ |Session.php|103|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
82
- |(Session.php)|(49行目)|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
82
+ |(Session.php)|(49)|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
83
- |DbRepository.php|41行目|$this->con false に変更 (PDO インスタンス 以外)|続行 (F5)|
83
+ |DbRepository.php|41|$this->con false に変更 (PDO インスタンス 以外)|続行 (F5)|
84
84
 
85
- **(Session.php) (49行目) は、ブレークポイントではありません**
85
+ **(Session.php) (49) は、ブレークポイントではありません**
86
86
 
87
87
  実行後、**エラーが再現**されます
88
88
  原因は、**DB への接続ミス** です

3

画像へのコメント表示

2019/08/18 06:19

投稿

退会済みユーザー
answer CHANGED
@@ -247,6 +247,7 @@
247
247
 
248
248
 
249
249
  ![MiniBlogApplication.php の比較](c26d5241bd8a86a8dfe542b1a5973cd8.jpeg)
250
+ クリックすると、拡大表示します
250
251
 
251
252
  正 protected function co**n**figure()
252
253
  誤 protected function cofigure()

2

NetBeans デバッグ方法 追加

2019/08/18 05:50

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- ###回答 と 参考サイトの紹介 です
1
+ ###回答 と 参考サイトの紹介 と NetBeans デバッグ方法 です
2
2
 
3
3
  回答です。
4
4
 
@@ -8,8 +8,12 @@
8
8
 
9
9
  既に、指摘されていますが、**DB への接続ミス**です。
10
10
 
11
+ **NetBeans IDE デバッグ機能** を使って解決しました。
12
+
11
13
  ---
12
14
 
15
+ 参考サイトの紹介です。
16
+
13
17
  直接の回答ではありません。
14
18
  (nullbotさんの好意を無駄にしたくないので...)
15
19
 
@@ -21,7 +25,7 @@
21
25
  [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
22
26
  [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
23
27
  [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html)
24
- に書いてありますが、「写経」はおすすめしません。
28
+ に書いてありますが、**「写経」はおすすめしません。**
25
29
 
26
30
  サンプルコードを理解すれば、**IDE デバッグ機能**を使って、エラーは解決できます。
27
31
  当面は、サンプルコードの理解を優先してください。
@@ -33,4 +37,216 @@
33
37
  (あくまで、「写経」の入力ミス チェックです)
34
38
 
35
39
  最初は大変ですが、頑張ってください。
36
- 期待しています。
40
+ 期待しています。
41
+
42
+ ---
43
+ ####NetBeans デバッグ方法
44
+
45
+ **【エラー原因】**
46
+
47
+ **NetBeans IDE デバッグ機能** を使った 具体的な デバッグ方法 です。
48
+
49
+ 注意点
50
+ - 公式サイト サンプルコード(mini-blog.zip) を使用 (不具合 2ヶ所修正)
51
+ - デバッグ中の変数の**変更**は、**メモリ上**です (ファイルは元のまま)
52
+
53
+ 仕様 (ホームページ表示とログイン)
54
+ - サンプルコード: ホームページ(#5 Application->runAction('status', 'index', Array))は、ログイン後に表示されます
55
+ - orangefarmer さん: 未ログイン(#2 StatusRepository->fetchAllPersonalArchivesByUserId(NULL))で実行されています
56
+ - 対策 **下記** NetBeans ブレークポイント (Session.php) (49行目) 参照
57
+
58
+ 参考
59
+ - [処理の流れ | ホームページと投稿](http://beginner001.html.xdomain.jp/debug-02-2.html)
60
+ - [処理の流れ | アカウント情報管理とログイン](http://beginner001.html.xdomain.jp/debug-02-4.html)
61
+
62
+
63
+ エラー ログ
64
+ ```
65
+ #6 C:\xampp\htdocs\php-blog.localhost\web\index_dev.php(7): Application->run()
66
+ #5 C:\xampp\htdocs\php-blog.localhost\core\Application.php(103): Application->runAction('status', 'index', Array)
67
+ #4 C:\xampp\htdocs\php-blog.localhost\core\Application.php(123): Controller->run('index', Array)
68
+ #3 C:\xampp\htdocs\php-blog.localhost\core\Controller.php(41): StatusController->indexAction(Array)
69
+ #2 C:\xampp\htdocs\php-blog.localhost\controllers\StatusController.php(8): StatusRepository->fetchAllPersonalArchivesByUserId(NULL)
70
+ #1 C:\xampp\htdocs\php-blog.localhost\models\StatusRepository.php(22): DbRepository->fetchAll('select a.*, u.u...', Array)
71
+ #0 C:\xampp\htdocs\php-blog.localhost\core\DbRepository.php(32): DbRepository->execute('select a.*, u.u...', Array)
72
+
73
+ Fatal error: Call to a member function prepare() on bool
74
+ ```
75
+
76
+  
77
+ NetBeans ブレークポイント (3ヶ所設定)
78
+ |ファイル|行|内容|次のアクション|
79
+ |:--|:--|:--|:--|
80
+ |Application.php|184行目|$controller("status"), $action("index") 確認|続行 (F5)|
81
+ |Session.php|103行目|isAuthenticated ログインチェック|ステップ・イン (F7) 2回|
82
+ |(Session.php)|(49行目)|$default true に変更 (**上記** 仕様 対策)|続行 (F5)|
83
+ |DbRepository.php|41行目|$this->con false に変更 (PDO インスタンス 以外)|続行 (F5)|
84
+
85
+ **(Session.php) (49行目) は、ブレークポイントではありません**
86
+
87
+ 実行後、**エラーが再現**されます
88
+ 原因は、**DB への接続ミス** です
89
+
90
+  
91
+ Application.php
92
+ ```PHP
93
+ ...
94
+ 173 public function run()
95
+ 174 {
96
+ 175 try {
97
+ 176 $params = $this->router->resolve($this->request->getPathInfo());
98
+ 177 if ($params === false) {
99
+ 178 throw new HttpNotFoundException('No route found for ' . $this->request->getPathInfo());
100
+ 179 }
101
+ 180
102
+ 181 $controller = $params['controller'];
103
+ 182 $action = $params['action'];
104
+ 183
105
+ 184 $this->runAction($controller, $action, $params);
106
+ 185 } catch (HttpNotFoundException $e) {
107
+ 186 $this->render404Page($e);
108
+ 187 } catch (UnauthorizedActionException $e) {
109
+ 188 list($controller, $action) = $this->login_action;
110
+ 189 $this->runAction($controller, $action);
111
+ 190 }
112
+ 191
113
+ ...
114
+ ```
115
+
116
+  
117
+ Session.php
118
+ ```PHP
119
+ ...
120
+ 43 public function get($name, $default = null)
121
+ 44 {
122
+ 45 if (isset($_SESSION[$name])) {
123
+ 46 return $_SESSION[$name];
124
+ 47 }
125
+ 48
126
+ 49 return $default;
127
+ 50 }
128
+ ...
129
+ 101 public function isAuthenticated()
130
+ 102 {
131
+ 103 return $this->get('_authenticated', false);
132
+ 104 }
133
+ ...
134
+ ```
135
+
136
+  
137
+ DbRepository.php
138
+ ```PHP
139
+ ...
140
+ 39 public function execute($sql, $params = array())
141
+ 40 {
142
+ 41 $stmt = $this->con->prepare($sql);
143
+ 42 $stmt->execute($params);
144
+ 43
145
+ 44 return $stmt;
146
+ 45 }
147
+ ...
148
+ ```
149
+
150
+ ---
151
+
152
+ **【ソースコードを調べる】**
153
+
154
+ "**new PDO**" を検索 検索ツール(Devas)
155
+ |ファイル|メソッド|
156
+ |:--|:--|
157
+ |DbManager.php |public function **connect(**$name, $params)|
158
+
159
+  
160
+ "**connect(**" を検索 検索ツール(Devas)
161
+ |ファイル|メソッド|
162
+ |:--|:--|
163
+ |MiniBlogApplication.php|protected function **configure(**)|
164
+ |~~DbManager.php~~|~~public function connect($name, $params)~~ 同上|
165
+
166
+  
167
+ "**configure(**" を検索 検索ツール(Devas)
168
+ |ファイル|メソッド|
169
+ |:--|:--|
170
+ |~~MiniBlogApplication.php~~|~~protected function configure()~~ 同上|
171
+ |Application.php|public function __construct($debug = false)|
172
+ |Application.php|protected function configure()|
173
+
174
+  
175
+ DbManager.php
176
+ ```PHP
177
+ ...
178
+ 20 public function connect($name, $params)
179
+ 21 {
180
+ 22 $params = array_merge(array(
181
+ 23 'dsn' => null,
182
+ 24 'user' => '',
183
+ 25 'password' => '',
184
+ 26 'options' => array(),
185
+ 27 ), $params);
186
+ 28
187
+ 29 $con = new PDO(
188
+ 30 $params['dsn'],
189
+ 31 $params['user'],
190
+ 32 $params['password'],
191
+ 33 $params['options']
192
+ 34 );
193
+ 35
194
+ 36 $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
195
+ 37
196
+ 38 $this->connections[$name] = $con;
197
+ 39 }
198
+ ...
199
+ ```
200
+
201
+  
202
+ MiniBlogApplication.php
203
+ ```PHP
204
+ ...
205
+ 37 protected function configure()
206
+ 38 {
207
+ 39 $this->db_manager->connect('master', array(
208
+ 40 'dsn' => 'mysql:dbname=mini_blog;host=localhost;charset=utf8',
209
+ 41 'user' => 'root',
210
+ 42 'password' => '',
211
+ 43 ));
212
+ 44 }
213
+ ...
214
+ ```
215
+
216
+  
217
+ Application.php
218
+ ```PHP
219
+ ...
220
+ 21 public function __construct($debug = false)
221
+ 22 {
222
+ 23 $this->setDebugMode($debug);
223
+ 24 $this->initialize();
224
+ 25 $this->configure();
225
+ 26 }
226
+ ...
227
+ 60 protected function configure()
228
+ 61 {
229
+ 62 }
230
+ ...
231
+ ```
232
+
233
+  
234
+ **上記 3ファイル の関連個所 (メソッド等)を調べる**
235
+ 上記 3ファイルのうち、orangefarmer さんから コード提示されているのは、
236
+ MiniBlogApplication.php のみ
237
+
238
+ MiniBlogApplication.php に**エラーが無い場合**
239
+ DbManager.php と Application.php のコード提示してもらう予定
240
+
241
+ ---
242
+
243
+ **【修正箇所が分かる】**
244
+
245
+ 差分ツール (WinMerge) で
246
+ サンプルコード の MiniBlogApplication.php と orangefarmer さんの MiniBlogApplication.php を比較する
247
+
248
+
249
+ ![MiniBlogApplication.php の比較](c26d5241bd8a86a8dfe542b1a5973cd8.jpeg)
250
+
251
+ 正 protected function co**n**figure()
252
+ 誤 protected function cofigure()

1

回答 追加

2019/08/18 05:38

投稿

退会済みユーザー
answer CHANGED
@@ -1,16 +1,27 @@
1
- ###参考サイトの紹介です
1
+ ###回答 と 参考サイトの紹介 です
2
2
 
3
+ 回答です。
4
+
5
+ PhpBlogApplication.php (MiniBlogApplication.php)
6
+ 誤 protected function cofigure()
7
+ 正 protected function co**n**figure()
8
+
9
+ 既に、指摘されていますが、**DB への接続ミス**です。
10
+
11
+ ---
12
+
3
13
  直接の回答ではありません。
4
14
  (nullbotさんの好意を無駄にしたくないので...)
5
15
 
6
16
  teratail
7
17
  [パーフェクトphpの7章の例題の変数の中身が知りたい。](https://teratail.com/questions/185638) の
8
- 「参考サイトの紹介です」の**各リンク**ご覧ください。
18
+ 「参考サイトの紹介です」の**各リンク**ご覧ください。
9
19
 
10
20
  上記リンクの
11
- [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
21
+ [パーフェクトPHP をデバッグしました (学習方法)](https://beginner001.hatenablog.com/entry/2018/12/27/100003)
12
- [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
22
+ [パーフェクトPHP をデバッグしました (やる気のある初心者)](https://beginner001.hatenablog.com/entry/2018/12/27/100004)
23
+ [NetBeans IDE のおかげで理解が飛躍的に](https://blogs.yahoo.co.jp/amegrapsp/41551211.html)
13
- 書いてありますが、「写経」はおすすめしません。
24
+ 書いてありますが、「写経」はおすすめしません。
14
25
 
15
26
  サンプルコードを理解すれば、**IDE デバッグ機能**を使って、エラーは解決できます。
16
27
  当面は、サンプルコードの理解を優先してください。