PHPの学習の為、パーフェクトPHPを読んでいたのですが、完全につまずいてしまった為、ご助言頂きたくご質問させていただきました。
つまずいてしまった箇所は、第7章の「フレームワークによる効率的な開発」の部分になります。
php
1<?php 2 class ClassLoader{ 3 protected $dirs; 4 5 public function register(){ 6 spl_autoload_register(array($this,'loadclass')); 7 } 8 public function registerDir($Dir){ 9 $this->dirs[] = $dir; 10 } 11 12 public function loadClass($class){ 13 foreach($this->dirs as $dir){ 14 $file = $dir . '/' . $class .'.php'; 15 if(is_readable($file)){ 16 require $file; 17 18 return; 19 } 20 } 21 } 22 23 } 24 25 26?>
上記は、オートロードに関する処理をまとめたクラスである、「ClassLoader.php」になります。
「ClassLoader.php」の「register」メソッドでは、PHPにオートローダクラスを登録する処理、そして、loadClassメソッドには、オートロードが実行された際にクラスファイルを読み込む処理となります。
お聞きしたい部分なのですが、他の個所につきましても、分からない部分は多いのですが、第一にお聞きしたい部分は、「register」メソッドの「spl_autoload_register」関数についてです。
PHPマニュアルを参照してみたのですが、良く意味が分かりませんでした...
そして、第2に「registerDir」メソッド内についてです。メソッド内では、「$this->dirs[]」となっているのですがここの$thisはClassLoader内の「protected $dirs;」変数を指しているという理解で合っていますでしょうか?
まだ分からない点があるのですが、ここの2点が解決されましたら他の個所も分かるようになる気がします...
どなたか、ご助言頂ける方いらっしゃいましたら、幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/07 06:29
2019/03/07 06:47