opencart phpソースコードを読んでいますが、これがわかりません。「$url= $ rewrite-> rewrite($ url);」の関数rewrite()を見てください。
<?php
class Url {
private $url;
private $rewrite = array();
public function link($route, $args = '', $connection = 'NONSSL') {
....
foreach ($this->rewrite as $rewrite) {
$url = $rewrite->rewrite($url);
}
return $url;
}
public function addRewrite($rewrite) {
$this->rewrite[] = $rewrite;
}
}
?>
上記のコードでエラーが発生しないのはなぜですか?
書き換え関数はクラスUrlで定義されておらず、クラスUrlは誰も拡張しませんか?しかし、それから私はより深く追跡します、関数の書き換えはseo_urlクラスにあるようです。
class ControllerCommonSeoUrl extends Controller {
// Add rewrite to url class
if ($this->config->get('config_seo_url')) {
$this->url->addRewrite($this);
}
...
public function rewrite($link) {
if ($this->config->get('config_seo_url')) {
$url_data = parse_url(str_replace('&', '&', $link));
....
なんで ?'Url'とこの'ControllerCommonSeoUrl'の間にまだ接続がありません。ここでいくつかの概念が欠けていますか?これらのコードを理解するにはどうすればよいですか?ここではほとんどガイダンスは必要ありません。