Shen Yi 先生の PHP 特訓ノート (7) ~私の名前は?

WBOY
リリース: 2016-09-02 08:42:53
オリジナル
1781 人が閲覧しました

1. フォルダーを生成します。

mkdir();--新しいディレクトリ

リーリー

パラメータ: pathname:ディレクトリへのパス。

mode:デフォルトのモードは0777で、これは可能な最大のアクセス権を意味します。モードの詳細については、 chmod() ページを参照してください。

上記の関数を見ましたか?覚えて。シェン先生は最後の授業で宿題を残しました。それは、god.json ファイルを読み取り、最も単純な「スケルトン」を生成するというものでした。 1. パラメータの開始を受け入れます。 2. prj_name の値に基づいてフォルダーを生成します。 3. 新しく作成されたフォルダーにデフォルトでindex.phpが生成されます。

OK、最初のステップを実装して、godinitファイルにメソッドを書きましょう

リーリー


そして ./god start を実行すると、私のファイルパスにプロジェクトフォルダーが生成されます。もちろん、これはコースのデモです。フォルダーが存在しない場合は作成します。存在する場合は作成しないでください。

この start() メソッドを改善します:

リーリー

上に関数が表示されます: file_exists();--ファイルまたはディレクトリが存在するかどうかを確認します。もう一度強化しましょう:

リーリー

パラメータ: filename ファイルまたはディレクトリのパス。

戻り値: filenamefilename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE で指定されたファイルまたはディレクトリが存在する場合、 TRUE を返します。 , それ以外の場合は、

FALSE
を返します。

引き続きコースに戻り、PHP ファイルを生成します:


リーリー

よし、前の授業の宿題は終わった

このレッスンの主な内容は、新しい god_frame.php を作成し、スケルトンを処理するための専用のクラスを作成することです。

神を「骸骨」として使っているから。次に、最初にコンストラクターを作成し、1. スケルトンのフォルダー名と 2. スケルトンのエントリ ファイルを事前に予約する必要があります。次に、神のコアを表すフォルダーコアを作成し、その下にframeというサブフォルダーを作成し、その下にtemplateというフォルダーを作成します。最後に、の下にgod_frame.phpを詰めます。 コードを書く前に、魔法の関数を強化する必要があります:

__autoload();-- class--未定義のクラスをロードしようとしています

🎜 リーリー 🎜 🎜 🎜パラメータ: 🎜ロードするクラス名🎜🎜 🎜 リーリー 🎜

  然后我们今天还要研究下命名空间namespace。然后用use导入命名空间。

  好了,我们来看看我这节课完成的代码:god_frame.php 

<?<span style="color: #000000;">php
namespace core\frame;
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> god_frame
{
    </span><span style="color: #0000ff;">public</span>  <span style="color: #800080;">$project_folder</span> = '';       <span style="color: #008000;">//</span><span style="color: #008000;">项目文件夹</span>
    <span style="color: #0000ff;">public</span>  <span style="color: #800080;">$project_main</span> = '';         <span style="color: #008000;">//</span><span style="color: #008000;">入口文件</span>
    <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$prjName</span>){      <span style="color: #008000;">//</span><span style="color: #008000;">构造函数</span>
       <span style="color: #800080;">$this</span>->project_folder = <span style="color: #008080;">getcwd</span>()."/".<span style="color: #800080;">$prjName</span><span style="color: #000000;">;
       </span><span style="color: #800080;">$this</span>->project_main = <span style="color: #800080;">$this</span> ->  project_folder."/index.php"<span style="color: #000000;">;

    }
    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> run(){
        </span><span style="color: #008000;">//</span><span style="color: #008000;">判断并生成新的文件夹,没有就创建</span>
        !<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$this</span>->project_folder) && <span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$this</span>-><span style="color: #000000;">project_folder);
        </span><span style="color: #008000;">//</span><span style="color: #008000;">在该文件夹下判断并生成一个index.php文件,没有就创建</span>
        !<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$this</span>->project_main ) && <span style="color: #008080;">file_put_contents</span>(<span style="color: #800080;">$this</span>->project_main,""<span style="color: #000000;">);
    }
}
</span>?>
ログイン後にコピー
<span style="color: #008000;">//</span><span style="color: #008000;">godinit</span>
<?<span style="color: #000000;">php
</span><span style="color: #008080;">define</span>('cstring','json'<span style="color: #000000;">);
</span><span style="color: #0000ff;">require</span>('godconfig.php');                    <span style="color: #008000;">//</span><span style="color: #008000;">引入gonconfig这个文件</span>
<span style="color: #0000ff;">use</span><span style="color: #000000;"> core\frame;
</span><span style="color: #0000ff;">function</span> __autoload(<span style="color: #800080;">$className</span><span style="color: #000000;">){
    </span><span style="color: #800080;">$className</span> = <span style="color: #008080;">str_replace</span>('\\','/',<span style="color: #800080;">$className</span>).'.php'<span style="color: #000000;">;
    </span><span style="color: #0000ff;">require</span> (<span style="color: #800080;">$className</span><span style="color: #000000;">);
}
</span><span style="color: #0000ff;">class</span> godinit                                <span style="color: #008000;">//</span><span style="color: #008000;">创建一个类,godinit</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">static</span>  <span style="color: #800080;">$v</span>="god version is 1.2";         <span style="color: #008000;">//</span><span style="color: #008000;">声明一个静态属性$VERSION</span>

    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> init()                   <span style="color: #008000;">//</span><span style="color: #008000;">静态方法 init</span>
<span style="color: #000000;">    {
        </span><span style="color: #0000ff;">echo</span> "input your project name?".<span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$prj_name</span> = <span style="color: #008080;">fgets</span>(STDIN);           <span style="color: #008000;">//</span><span style="color: #008000;">重新获取用户输入,并赋值给$prj_name</span>
        
        <span style="color: #0000ff;">echo</span> "input your author name?".<span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$prj_author</span> = <span style="color: #008080;">fgets</span>(STDIN);         <span style="color: #008000;">//</span><span style="color: #008000;">重新获取用户输入,并赋值给$prj_author</span>
      genConfig(TC(<span style="color: #0000ff;">array</span>('prj_name'=><span style="color: #800080;">$prj_name</span>,'prj_author'=><span style="color: #800080;">$prj_author</span><span style="color: #000000;">)));
    }
    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> ini(){
       </span><span style="color: #800080;">$get_config</span> =<span style="color: #000000;"> loadConfig();
        </span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$get_config</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$k</span>=><span style="color: #800080;">$v</span><span style="color: #000000;">)
            </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$k</span>.":".<span style="color: #800080;">$v</span><span style="color: #000000;">;
    }
    </span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> start(){
        </span><span style="color: #800080;">$get_config</span> =<span style="color: #000000;"> loadConfig();
        </span><span style="color: #800080;">$gf</span> = <span style="color: #0000ff;">new</span> god_frame(<span style="color: #800080;">$get_config</span>-><span style="color: #000000;">prj_name);
        </span><span style="color: #800080;">$gf</span> -><span style="color: #000000;"> run();
    }
</span><span style="color: #008000;">/*</span><span style="color: #008000;">    static  function make()
    {
        $pchar=new Phar("god.phar");
        $pchar->buildFromDirectory(dirname(__FILE__));
        $pchar->setStub($pchar->createDefaultStub('god'));
        $pchar->compressFiles(Phar::GZ);
    }</span><span style="color: #008000;">*/</span>
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> __callStatic(<span style="color: #800080;">$p1</span>,<span style="color: #800080;">$p2</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "error function"<span style="color: #000000;">;
    }
}
</span>?>
ログイン後にコピー

 

 版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《 PHP魔鬼训练课第一阶段》。本学习笔记小卒于博客园首发, 如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。

 

 上一课:沈逸老师PHP魔鬼特训笔记(6)--巫术与骨架

 

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート