回答編集履歴
6
後学のために修正
answer
CHANGED
@@ -49,6 +49,6 @@
|
|
49
49
|
}
|
50
50
|
```
|
51
51
|
|
52
|
-
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpクラスはその上の名前空間の中でしか使えません。
|
52
|
+
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpクラス内のメソッドdomOfUnvHpはその上の名前空間の中でしか使えません。
|
53
53
|
|
54
|
-
したがって、**doScrap.phpから呼び出すためにはファイルの名前空間を再定義するか、直接、呼び出そうとしているファイルの名前空間のパスを明示してからメソッドを呼び出さないといけない**はずです。
|
54
|
+
したがって、**doScrap.phpからdomOfUnvHpメソッドを呼び出すためにはdoScrap.phpファイルの名前空間を再定義するか、直接、呼び出そうとしているファイルの名前空間のパスを明示してからメソッドを呼び出さないといけない**はずです。
|
5
クラス名の修正
answer
CHANGED
@@ -49,6 +49,6 @@
|
|
49
49
|
}
|
50
50
|
```
|
51
51
|
|
52
|
-
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHp
|
52
|
+
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpクラスはその上の名前空間の中でしか使えません。
|
53
53
|
|
54
54
|
したがって、**doScrap.phpから呼び出すためにはファイルの名前空間を再定義するか、直接、呼び出そうとしているファイルの名前空間のパスを明示してからメソッドを呼び出さないといけない**はずです。
|
4
さらに改善
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
別の名前空間のメソッド呼び出してませんか?
|
1
|
+
別の名前空間のメソッド呼び出そうとしてませんか?
|
2
2
|
|
3
3
|
エラー内容はこうです。
|
4
4
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<?php
|
19
19
|
namespace backend;
|
20
20
|
|
21
|
-
use backend\eachHps\unvHp;
|
21
|
+
use backend\eachHps\unvHp; //ここで有効な名前空間
|
22
22
|
|
23
23
|
var_dump(unvHp::domOfUnvHp()); //これを呼ぼうとしている?
|
24
24
|
|
@@ -30,11 +30,12 @@
|
|
30
30
|
```PHP
|
31
31
|
<?php
|
32
32
|
|
33
|
-
namespace backend\eachHps;
|
33
|
+
namespace backend\eachHps; //先ほどと名前空間の定義が異なっている
|
34
34
|
|
35
35
|
use backend\Usecases\doScrapingUsecase;
|
36
36
|
|
37
37
|
|
38
|
+
//このクラスは上で定義した名前空間でのみ有効
|
38
39
|
class unvHp
|
39
40
|
{
|
40
41
|
private const url = "https://www.tohoku.ac.jp/japanese/rss/cate_tar_student/index.xml";
|
@@ -50,4 +51,4 @@
|
|
50
51
|
|
51
52
|
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpメソッドはその上の名前空間の中でしか使えません。
|
52
53
|
|
53
|
-
したがって、**doScrap.phpから
|
54
|
+
したがって、**doScrap.phpから呼び出すためにはファイルの名前空間を再定義するか、直接、呼び出そうとしているファイルの名前空間のパスを明示してからメソッドを呼び出さないといけない**はずです。
|
3
文章の整理
answer
CHANGED
@@ -7,11 +7,13 @@
|
|
7
7
|
not found in /var/www/html/backend/doScraping.php:8 Stack trace:
|
8
8
|
#0 /var/www/html/index.php(2): require_once()
|
9
9
|
#1 {main} thrown in /var/www/html/backend/doScraping.php on line 8
|
10
|
-
doScrap.phpの8行目にあるbackend\eachHps\unvHpなんてクラスなんて知りませんってことです。
|
11
10
|
```
|
12
11
|
|
13
|
-
|
12
|
+
doScrap.phpの8行目にあるbackend\eachHps\unvHpなんてクラスなんて知りませんってことです。
|
14
13
|
|
14
|
+
|
15
|
+
では、そのdoScrap.phpの8行目ですが、var_dumpで呼び出そうとしているものだと仮定します。
|
16
|
+
|
15
17
|
```php
|
16
18
|
<?php
|
17
19
|
namespace backend;
|
@@ -23,7 +25,7 @@
|
|
23
25
|
|
24
26
|
```
|
25
27
|
|
26
|
-
|
28
|
+
このメソッドがbackend\eachHps\unvHpクラスには存在していないとエラーを吐いているので、unvHp::domOfUnvHPメソッドがあるファイルはどれかを見ていると
|
27
29
|
|
28
30
|
```PHP
|
29
31
|
<?php
|
@@ -46,6 +48,6 @@
|
|
46
48
|
}
|
47
49
|
```
|
48
50
|
|
49
|
-
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpメソッドはその上の名前空間の中でしか使え
|
51
|
+
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpメソッドはその上の名前空間の中でしか使えません。
|
50
52
|
|
51
|
-
したがって、doScrap.phpからスコープで呼び出すためには名前空間から定義してメソッドを呼び出さないといけないはずです。
|
53
|
+
したがって、**doScrap.phpからスコープで呼び出すためには名前空間から再定義するか、パスを明示してメソッドを呼び出さないといけない**はずです。
|
2
ソースがおかしかったので
answer
CHANGED
@@ -24,13 +24,15 @@
|
|
24
24
|
```
|
25
25
|
|
26
26
|
ではunvHp::domOfUnvHPメソッドがあるファイルはどれかを見ていると
|
27
|
+
|
28
|
+
```PHP
|
27
29
|
<?php
|
28
30
|
|
29
31
|
namespace backend\eachHps;
|
30
32
|
|
31
33
|
use backend\Usecases\doScrapingUsecase;
|
32
34
|
|
33
|
-
|
35
|
+
|
34
36
|
class unvHp
|
35
37
|
{
|
36
38
|
private const url = "https://www.tohoku.ac.jp/japanese/rss/cate_tar_student/index.xml";
|
@@ -46,4 +48,4 @@
|
|
46
48
|
|
47
49
|
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpメソッドはその上の名前空間の中でしか使えないメソッドであるはずです。
|
48
50
|
|
49
|
-
したがって、doScrap.phpからスコープで呼び出すためには名前空間からメソッドを呼び出さないといけないはずです。
|
51
|
+
したがって、doScrap.phpからスコープで呼び出すためには名前空間から定義してメソッドを呼び出さないといけないはずです。
|
1
途中で勝手に転送したので
answer
CHANGED
@@ -30,6 +30,7 @@
|
|
30
30
|
|
31
31
|
use backend\Usecases\doScrapingUsecase;
|
32
32
|
|
33
|
+
```PHP
|
33
34
|
class unvHp
|
34
35
|
{
|
35
36
|
private const url = "https://www.tohoku.ac.jp/japanese/rss/cate_tar_student/index.xml";
|
@@ -40,4 +41,9 @@
|
|
40
41
|
$dom = $rawDom->not("id");
|
41
42
|
return $dom;
|
42
43
|
}
|
43
|
-
}
|
44
|
+
}
|
45
|
+
```
|
46
|
+
|
47
|
+
これのようですが、このファイルの名前空間で制御されているのはbackend\eachHpsなのでunvHpメソッドはその上の名前空間の中でしか使えないメソッドであるはずです。
|
48
|
+
|
49
|
+
したがって、doScrap.phpからスコープで呼び出すためには名前空間からメソッドを呼び出さないといけないはずです。
|