2012-01-31 8 views
-1

を含め、私は、次の質問を持っている:PHPのクラスとは

これは私のメインのファイルindex.phpです。

<?php 

class myClass 
{ 
    function myClass() 
    { 
    echo '[constructor]'; 
    $this->myVar = '[i am making a test]'; 
    $this->A(); 
    } 
    function A() 
    { 
    echo '[function A works too]'; 
    echo $this->myVar; 
    } 
} 

$test = new myClass; 

?> 

今私はメインファイルにのinclude_once、私は可能性が別のPHPファイルincludes/function_a.phpfunction Aを移動する必要があります。その理由は、メインファイルを小さくして読みやすくするためです。

これを実行するベストプラクティスは何ですか、EXTENDS?

EDIT:

私が使用してこれをやったが延び:

のindex.php

<?php 

include_once('includes/function_a.php'); 

class myClass extends anotherClass 
{ 
    function myClass() 
    { 
    echo '[constructor]'; 
    $this->myVar = '[i am making a test]'; 
    $this->A(); 
    } 
} 

$test = new myClass; 

?> 

は、/ function_a.php

<?php 
class anotherClass 
{ 
    function A() 
    { 
    echo '[function A works too]'; 
    echo $this->myVar; 
    } 
} 
?> 

もっと良いアイデアですか?

+3

'関数A 'を別のファイルに入れたいのに、まだ' myClass'クラスの一部ですか? –

+0

最終的に一度に読む必要があるものを分割するのはなぜですか? – Alfabravo

+0

はい、私は関数A全体を別のファイルに配置したいが、メインクラスの内部にあるのと同じ機能を持たせたい。 – acoder

答えて

3

あなたの質問の終わりにそれを行う最良の方法をヒントします。親クラスを作成し、 "myClass"を親クラスに拡張する必要があります。 "myClass"は親クラスのメソッドを継承し、親クラスは別のファイルに存在する可能性があります。それはあなたが探していたものですか?

0

関数が長すぎる場合は、より小さな関数で分割します。彼らはfunctionA_part01のように有用でなくてはなりません。

例: Function Aがファイルを読み出す場合はgetDataFromFile()。

まだ新しいファイルを作成する必要がある場合は、myClassを使用して抽象クラスを拡張することができます。

あなたのクラスデザインを再考する必要がありますか?

1

myClassを基本クラスとして提供しない場合は、別のクラスを使用するEXTENDを使用しないでください。

myClassクラスを含むファイルをインクルードし、Aを使用するmyClassのオブジェクトをインスタンス化します。