PHPCMS v 9分析(1)

2662 ワード

最近、会社は微信インタフェースの開発をします.aspでNetは常に微信ユーザーのopenIdが取れず、phpを変えてもいいです.そこでコードをPHPに変更して開発しました. 
そこでプロジェクトにPHPCMS V 9というフレームワークを導入した.PHPの最初の資料を勉強します
  
実はとっくにPHPCMS V 9を使っていたのですが、ずっと深く研究していません.ここ数日ちょうどよく分析してみます.
一:まず簡単にPHP文法を見ました.
PHPは弱いタイプ、解釈型、ダイナミックな言語で、C#とは異なりjavascriptと少し似ています.
PHPのクラスにはpublic修飾子はありません.php 5はすでにnamespaceから始まっているそうですが、phpcms v 9は現在使用されていません.
 
クラス内の関数の呼び出し:
使ったばかりの時はいつも心が騒ぐ.非静的メソッドは$this->メソッド名です.私はよくこれを使います.
クラス内の静的メソッドはクラス名::メソッド名.
 
 include,inlude_once,require,require_once
C#のusingのようにjavaのimportですが、phpファイルのパスを指定する必要があります.
なぜなら
includeは特殊な言語構造であり、そのパラメータにはカッコは必要ありません.戻り値を比較する際の注意点
戻り値の処理:失敗した場合
义齿
FALSEは警告を出します.成功した含めると返されます
1,
 
リモート・サーバからのファイルがリモートで実行され、結果のみが出力されるべきである場合は、readfile()関数を使用するとよい.また、リモート・スクリプトが正当で必要なコードを生成することを保証するために、特に注意してください.
 
requireとincludeはほとんど同じで、失敗を処理する方法が異なる以外は.requireエラー時に発生E_COMPILE_ERRORレベルのエラー.つまり、スクリプトが中止され、includeは警告のみが発生します(E_WARNING)では、スクリプトが実行されます.
 
 
 
 
 
include_once文は、スクリプト実行中に指定されたファイルを含み、実行します.この動作はinclude文と似ています.唯一の違いは、ファイルにすでに含まれている場合は、再び含まれません.この文の名前が示すように、一度だけ含まれます.
 
 
 
 
php 5はオブジェクト向けと言いますが、C#,javaとは異なり、完全なオブジェクト向けとは言えません.
 
少なくともC#、javaはmain関数を除いてクラスです.php 5はクラスのほかに独立したdefineやfunctionなどがある.
 
 
二phpcms v 9の基本構造:
 
【1】cachesフォルダには、プロファイルとキャッシュファイルが置かれています.phpcms v 9はファイル型キャッシュを使用しており、もちろんmemcacheを構成することもできます.
 
【2】staticsディレクトリ静的ファイルJS,CSS,images
 
【3】phpcmsはプログラムマスターファイルである.
      
--libsシステムコアライブラリ
--modelフォルダデータテーブルモデルは、C#活javaでORmを行う場合とは異なり、各データテーブルはエンティティクラス、エンティティクラスの各フィールド、およびデータテーブルのフィールドに対応します.ここのエンティティクラスは、クラスに対応するテーブルを示すだけです.各モデルは親モデルから継承されます
 
このモデルクラスは、数年前から現在まで使われていたSqlHelperのようなものです.
       
phpcms v 9では、モデルごとに単一のテーブル操作も可能であり、連合クエリーを書くのは難しい.現在、ビューで実装しています.すなわち、まずマルチテーブル操作のビューを作成し、phpcms v 9にビューのmodelを置いて、ビューをテーブル操作としますか.
 
modulesディレクトリにはphpcms v 9のすべてのモジュールが置かれている.
各モジュールには少なくともいくつかのディレクトリ、classes、functions、templatesがあります.
classes:コントローラのベースクラスと見ることができますね
functions:ツール関数?
templates:これは管理側にこのモジュールを操作するために使用されます.
 
 
三.PHPCMS v 9の運転フロー
 
1:  index.php呼び出しbase.php.
2:変数を定義し、ルーティングを分割し、ルーティングで指定したmoduleのメソッドをロードします.
 
中にはいくつかの反射が使われています.
         class_existsはコントローラが存在するか否かを判断し、
         method_existsはメソッドが存在するかどうかを判断します.
         call_user_func(array($controller, ROUTE_A)); コントローラの防犯を呼び出します.
メソッドではinclude phpテンプレートファイルが整列し、1つのページがこのように動きました.
 
転載先:https://www.cnblogs.com/xinchuang/p/4111730.html