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." 存在しません!!! ");