TP5ブログのプロジェクトの戦闘
開発の準備:環境WAMP、一例として、Windowsのシステム。実際のブログを見て、デフォルトでは、少なくともいくつかの根拠を持っているTP5開発環境とフレームワークを設定します。
TP5をダウンロードしてインストール
方法の一つ:直接公式サイトでプロジェクトのディレクトリWAMPにコピーをダウンロードします。
方法2:プロジェクトのルートディレクトリを開くために作曲、オープンCMDをダウンロードしてインストールします
アリ雲ミラー(ダウンロード速度)を交換してください
composer config -g repo.packagist composer https://packagist.phpcomposer.com
ダウンロード
composer create-project topthink/think=5.0.* tp5 --prefer-dist
あなたのルートディレクトリにプロジェクトのこの時点でTP5フォルダが登場
ブラウザのローカルホストを開き/サイト/ TP5 /公衆
見えます
剣の十年は...その後、インストールは成功です。
名前空間
同じ2つの関数内でPHPが同じあなたが同じ名前の2がエラーなしので、2つの異なる名前空間に置くため、例えば、この関数の名前空間を使用する必要があり、この時間を表示することはできません。これは、ファイルを2つの同一名が表示されますすることはできません同じフォルダのようなものだ、我々は、ファイルがに戻されたフォルダ内の二つのサブフォルダを構築しました。
名前空間は、関数、クラス、関数と定数が定義された定数を定義していないだけ。
CONST定数の一般的なクラスで定義され、それは名前空間クラス外であってもよいです
以前のPHPの名前空間を導入し、名前空間の前に任意の文字を持つことはできません。
<?php
namespace kj1;
function getmsg(){
echo '123';
}
const mn='chenguosong';
namespace kj2;
function getmsg(){
echo 'hello';
}
const mn='chenjialei';
それでは、どの見つけ、あなたがそれをしたい機能を使用するには?
\kj1\getmsg();
echo '<br/>'.\kj1\mn;
機能は、このような、スペースの前に呼び出すことができます
<?php
namespace kj1;
function getmsg(){
echo '123';
}
const mn='chenguosong';
\kj2\getmsg();
namespace kj2;
function getmsg(){
echo 'hello';
}
const mn='chenjialei';
しかし、一定ではありません
マルチレベルの名前空間
このような
namespace beijing\haidian;
3つのアクセス方法
1.非限定的なアクセスモード名
これは、現在の名前空間を直接使用することです
namespace kj2;
function getmsg(){
echo 'hello';
}
getmsg();
アクセス方法の2修飾名
beijing\haidian\getmsg();
namespace shanghai\putuoqu\beijing\haidian;
function getmsg(){
echo 'hehe';
}
ファッションの完全修飾名にアクセスするには3。
\beijing\haidian\getmsg();
メカニズムの導入の名前空間
スペースのご紹介
use beijing\haidian\tiananmen;//引入命名空间
あなたは宇宙の内部を使用する場合は、アクセス方法のご修飾名を直接非限定的な名前を経由してアクセスすることはできません使用します
例えば、このために
tiananmen\getmsg();//命名空间里的方法的使用
$animal=new tiananmen\animals();
echo $animal->obj;//类的方法
echo tiananmen\animals::$name;//静态常量的访问
クラスの要素の導入
use beijing\haidian\tiananmen\animals;//这样就相当于把上一个命名空间的类animals复制了一份到当前的命名空间,可以直接使用,就像使用当前命名空间的类一样。注意,拷贝了一份就得把当前同名称的类给删除。
echo animals::$name;
$sub=new animals();
echo $sub->obj;
だから、それぞれの使用修飾名は、アクセスに使用することを名前空間の以前の導入のようなことはありません。
公共空間
公共空間に名前空間
PHPの名前空間が定義されていないが、例えば公共スペースは、次の2つのPHPです
2.php
<?php
function getmsg(){
echo "上海普陀";
}
const NM="陈国松";
1.php
<?php
namespace beijing;
header("content-type:text/html;charset=utf-8");
class animals{
public $obj='dog';
static $name='大黄';
}
function getmsg(){
echo '北京海淀';
}
include("./2.php");//引入公共空间
getmsg();//使用这个方法打印输出的是 北京海淀 而不是 上海普陀 说明引入的公共空间对当前命名空间是没有影响的,只有你要使用的方法在当前找不到,才会去公共空间寻找
公共空間の定数とメソッドを使用します
include("./2.php");
echo \NM;//如果当前的空间没有这个常量而公共空间有的话也可以直接这样echo NM
\getmsg();
公共空間の名前空間の導入
<?php
function getmsg(){
echo "上海普陀";
}
const NM="陈国松";
include("./1.php");
echo NM;//访问的还是当前的NM
echo \NM;//访问的是当前的NM
echo \beijing\NM;//访问命名空间里面的NM
空間内のTP5命名ユースケース
例えば、アプリケーションインデックスの次のコントローラ
名前空間は存在しない仮想ファイルディレクトリであるが、実際にアプリ/インデックス/コントローラ対応とTP5内部での開発を促進します
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return 'hello';
}
}
フェッチ方式thinkphp /ライブラリ/考える/コントローラーで
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
}
index.phpのあなたは、フェッチメソッドを使用することができますので、