ホームページ  >  記事  >  バックエンド開発  >  初めて PHP オブジェクト指向プログラミングを使い始めたとき、少しぎこちなさを感じました。

初めて PHP オブジェクト指向プログラミングを使い始めたとき、少しぎこちなさを感じました。

WBOY
WBOYオリジナル
2016-06-13 12:56:11855ブラウズ

PHP オブジェクト指向プログラミングを初めて使用したときは、少しぎこちなく感じます...
フロントエンドの作業には常に js を使用してきたためです
一般的にはこのように使われます
関数 xx(){
this.init.apply(this,arguments);
}

xx.prototype = {
オプション: {
//いくつかのデフォルト属性
}、
init : 関数(オプション){
$.extend(this,this.options,options);
//jquery を使わずに extend を書くのも簡単です
//..........
}
}

new xx(aa) //aa はオブジェクトであり、いくつかのパラメータを渡します
$.extend(this,this.options,options); これは、new のパラメータをデフォルトのパラメータとともに新しいインスタンスに与えることです。
の実装は非常に簡単です。
今日PHPを書いていたとき(同僚に値を1つずつ代入するように言われました)
次のコード (JS CSS のものをマージ)

 クラス mergeCompress<br>
{<br>
var $merge_arr;<br>
var $commpress_arr;<br>
var $type;<br>
var $file_dir; // 結合されたディレクトリを圧縮します <br>
var $file_name; // 圧縮された結合ファイル名<br>
var $path_jar; // yui jar のパス<br>
var $is_del = true //圧縮された分散ファイルが削除されるかどうか<br>
var $errs = array();<br>
パブリック関数 __construct($commpress_arr=array(),$merge_arr=array(),$type="js",$file_dir="",$file_name="",$path_jar=""){<br>
$this->type = $type;<br>
$this->commpress_arr = $commpress_arr;<br>
$this->merge_arr = $merge_arr;<br>
$this->file_dir = $file_dir;<br>
$this->file_name = $file_name;<br>
$this->path_jar = $path_jar;<br>
}<br>
パブリック関数 exec(){<br>
$new_compress_arr = $this->compress();<br>
<br>
$this->merge_arr = array_merge($this->merge_arr,$new_compress_arr);<br>
<br>
$this->merge();<br>
<br>
if($this->is_del){<br>
foreach($new_compress_arr as $i=>$url){<br>
リンク解除($url);<br>
}<br>
}<br>
}<br>
パブリック関数 compress(){<br>
$new_compress_arr = array();<br>
$temp = "java -jar {jar_path} --type {type} --charset utf-8 {source} > {compressor_source}";<br>
$temp = str_replace("{jar_path}",$this->path_jar,$temp);<br>
$temp = str_replace("{type}",$this->type,$temp);<br>
$type = $this->type;<br>
$file_dir = $this->file_dir;<br>
foreach($this->commpress_arr as $i => $val){<br>
if(!file_exists($val)){<br>
array_push($this->errs,$val." 存在しません!!! ");<br>
続行;<br>
}<br>
$cmd = str_replace("{source}",$val,$temp);<br>
$new_name = ベース名($val);<br>
$new_name = substr($new_name,0,strrpos($new_name,".")).".min.".$type;<br>
$file_new_name = $file_dir."/".$new_name;<br>
$cmd = str_replace("{compressor_source}",$file_new_name,$cmd);<br>
$arr = array();<br>
exec($cmd,$arr,$is);<br>
if($is != 0){<br>
array_push($errs,$val." 圧縮失敗!!!! ");<br>
}<br>
array_push($new_compress_arr,$file_new_name);<br>
}<br>
return $new_compress_arr;<br>
}<br>
パブリック関数 merge(){<br>
$content="";<br>
$file_name = $this->file_dir."/".$this->file_name;<br>
<br>
foreach($this->merge_arr as $i=>$url){<br>
if(!file_exists($url)){<br>
array_push($this->errs,$url." 存在しません!!! ");
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。