yaf-example
yafは鳥兄がC言語で作成したPHPフレームワークであり、yafドキュメントアドレス:http://yaf.laruence.com/manual/
実はずっと前からyafに触れていましたが、勉強しているだけで、深く理解して使うことはありませんでしたが、最近一つのプロジェクトを再構築しているので、再構築に使うフレームワークはyafフレームワークで、ちょうどこの機会にyafフレームワークをよく使いました.この文章は実は主にyafの例をあげて、yafを拡張して、yafのもの自体が簡単なので、速いです.鳥兄も2つの例をあげました.laruence/yaf-examples,1つはyafでSmartyを使った例で、もう1つはyafにDBとLog操作のパッケージを加えた例です.私があげたyafの例の住所は:https://github.com/jsyzchen/chen-yaf
コンフィギュレーション
まず、yafをインストールしなければなりません.ドキュメントには、http://php.net/manual/zh/yaf.installation.phpがあります.インストールが完了したら、php.iniファイルを編集し、yafを構成します.
chen-yaf主に追加されました. Eloquent ORM Twig 羅飛のSocketLog いくつかの一般的な関数 まずconf/application.iniファイルを編集します
DatabaseはMySqlデータベースの構成、socketlogはsocketlogの構成、twigはtwigテンプレートエンジンの構成
chen-yafはcomposerパッケージを使用しているので、まずcomposerのインストールを取得し、プロジェクトディレクトリの下にcomposer.jsonファイルを作成します.内容は以下の通りです.
そして覚えてる
Bootstrap.phpファイルの編集
Eloquent ORM
Eloquent ORMはLaravelフレームワークのORMです.
yafにはデータベース操作クラスがなく、自分でDAOレイヤを書くか、サードパーティ製パッケージを直接使用するか、推奨MedooとEloquent ORMがあり、chen-yafではEloquent ORMが使用されています.Bootstrap.phpファイルを編集し、_を追加initDefaultDbAdapterメソッド
次にアプリケーション/modelの下にModelベースクラス、EloquentModel.phpを構築します.
その後、すべてのModelクラスがEloquentModelを継承し、Laravelでデータベースを操作できるようになります.また、DBも使用できます.LaravelのDB facadeの使用方法と同じです.ドキュメント:https://laravel-china.org/docs/5.1/eloquent,https://laravel-china.org/docs/5.1/database
twig
twigはSymfonyフレームのテンプレートエンジンで、もちろん単独で使用することもできます.テンプレートエンジンはSmartyも使用できますが、ページキャッシュの機能を持ちたい場合はSmartyを使用します.
Bootstrap.phpファイルを編集し、_を追加义齿
これでhtmlファイルでtwigテンプレートエンジンを使うことができます
SocketLog
SocketLogはThinkPHPフレームワークのコア開発者である「羅飛」が開発したデバッグツールであり、ThinkPHP 5フレームワークを使用したことがある人はよく知っているはずだ.もっと多くの紹介は私のもう一つの文章を読むことができます:ログサービス.
SocketLog関連のファイルをlibrary/Common/LOggerディレクトリの下に置きました.SocketLogをインストールして構成したら、Bootstrap.phpに_を追加します.InitLoggerメソッド.
Chromeでコードをデバッグできます
その他
chen-yafはいくつかの関数を導入して、library/common/functions.phpの中に置いて、すべていくつかのよく使う関数で、もしあなたのプロジェクトの中で他の関数があれば中に加えればいいです.Bootstrap.phpの編集、追加_InitFunctionメソッド.
まとめ
chen-yaf単純なyaf例にすぎず、Eloquent ORMとtwigが加わっている.実際のプロジェクトでは、どんどん中身を加えていく必要があります.composerパッケージを使用している以上、自分のプロジェクトをするときに第三者パッケージを簡単に使用することができ、車輪を繰り返すことを避けることができます.サードパーティ製のパッケージをお勧めします.再構築プロジェクトでも使用しています.1.carbon:日時の操作.2.php-resque:キューの操作.3.sokil/php-mongo:mongodbの操作.4.monolog:ログの操作.
より良い交流のために、QQ群を加えることができます:415183844
コードワードは容易ではありませんて、転載してもとの住所を明記して下さい、Jsyz Chenのブログ:http://jsyzchen.com/2016/10/22/yaf-example/ありがとうございます!
実はずっと前からyafに触れていましたが、勉強しているだけで、深く理解して使うことはありませんでしたが、最近一つのプロジェクトを再構築しているので、再構築に使うフレームワークはyafフレームワークで、ちょうどこの機会にyafフレームワークをよく使いました.この文章は実は主にyafの例をあげて、yafを拡張して、yafのもの自体が簡単なので、速いです.鳥兄も2つの例をあげました.laruence/yaf-examples,1つはyafでSmartyを使った例で、もう1つはyafにDBとLog操作のパッケージを加えた例です.私があげたyafの例の住所は:https://github.com/jsyzchen/chen-yaf
コンフィギュレーション
まず、yafをインストールしなければなりません.ドキュメントには、http://php.net/manual/zh/yaf.installation.phpがあります.インストールが完了したら、php.iniファイルを編集し、yafを構成します.
extension=yaf.so
yaf.use_namespace=1 ;
yaf.use_spl_autoload=1 ;
chen-yaf主に追加されました.
[common]
application.directory = APP_PATH "/application"
application.view.ext = "html"
application.view.engine = "twig"
;user
user.default_filter = 'trim,addslashes,htmlspecialchars'
[product : common]
;twig
twig.cache = APP_PATH "/storage/twig/cache"
;database
database.driver = 'mysql'
database.read.host = '127.0.0.1'
database.write.host = '127.0.0.1'
database.port = '3306'
database.database = 'test'
database.username = 'root'
database.password = '123456'
database.charset = 'utf8'
database.collation = 'utf8_unicode_ci'
database.prefix = ''
database.strict = false
[develop : common]
application.dispatcher.catchException = TRUE
;twig
twig.debug = true
;socketlog
socketlog.enable = true
socketlog.host = 'localhost'
socketlog.optimize = true
socketlog.show_included_files = true
socketlog.error_handler = true
socketlog.force_client_ids = ''
socketlog.allow_client_ids = 'slog_78de03'
;database
database.driver = 'mysql'
database.host = '127.0.0.1'
database.port = '3306'
database.database = 'test'
database.username = 'root'
database.password = '123456'
database.charset = 'utf8'
database.collation = 'utf8_unicode_ci'
database.prefix = ''
database.strict = false
DatabaseはMySqlデータベースの構成、socketlogはsocketlogの構成、twigはtwigテンプレートエンジンの構成
chen-yafはcomposerパッケージを使用しているので、まずcomposerのインストールを取得し、プロジェクトディレクトリの下にcomposer.jsonファイルを作成します.内容は以下の通りです.
{
"require": {
"php": ">=5.5.9",
"illuminate/database": "5.1.*",
"illuminate/events": "5.1.*",
"symfony/debug": "2.6.*",
"symfony/var-dumper": "2.6.*",
"twig/twig": "^1.26"
},
"autoload": {
"psr-4": {
"App\\Models\\": "application/models"
}
}
}
そして覚えてる
composer install
Bootstrap.phpファイルの編集
/**
* vendor
*/
public function _initLoader()
{
\Yaf\Loader::import(APP_PATH . '/vendor/autoload.php');
}
/**
*
*/
public function _initConfig()
{
$this->config = \Yaf\Application::app()->getConfig();//
\Yaf\Registry::set('config', $this->config);
}
Eloquent ORM
Eloquent ORMはLaravelフレームワークのORMです.
yafにはデータベース操作クラスがなく、自分でDAOレイヤを書くか、サードパーティ製パッケージを直接使用するか、推奨MedooとEloquent ORMがあり、chen-yafではEloquent ORMが使用されています.Bootstrap.phpファイルを編集し、_を追加initDefaultDbAdapterメソッド
/**
*
* @function _initDefaultDbAdapter
* @author [email protected]
*/
public function _initDefaultDbAdapter()
{
// illuminate/database
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($this->config->database->toArray());
$capsule->setEventDispatcher(new \Illuminate\Events\Dispatcher(new \Illuminate\Container\Container));
$capsule->setAsGlobal();
// Eloquent ORM
$capsule->bootEloquent();
class_alias('\Illuminate\Database\Capsule\Manager', 'DB');
}
次にアプリケーション/modelの下にModelベースクラス、EloquentModel.phpを構築します.
その後、すべてのModelクラスがEloquentModelを継承し、Laravelでデータベースを操作できるようになります.また、DBも使用できます.LaravelのDB facadeの使用方法と同じです.ドキュメント:https://laravel-china.org/docs/5.1/eloquent,https://laravel-china.org/docs/5.1/database
twig
twigはSymfonyフレームのテンプレートエンジンで、もちろん単独で使用することもできます.テンプレートエンジンはSmartyも使用できますが、ページキャッシュの機能を持ちたい場合はSmartyを使用します.
Bootstrap.phpファイルを編集し、_を追加义齿
/**
* Twig View
* @param \Yaf\Dispatcher $dispatcher
*/
public function _initTwig(\Yaf\Dispatcher $dispatcher)
{
$twig = new \Twig\Adapter(APP_PATH . "/application/views/", $this->config->get("twig")->toArray());
$dispatcher->setView($twig);
}
これでhtmlファイルでtwigテンプレートエンジンを使うことができます
SocketLog
SocketLogはThinkPHPフレームワークのコア開発者である「羅飛」が開発したデバッグツールであり、ThinkPHP 5フレームワークを使用したことがある人はよく知っているはずだ.もっと多くの紹介は私のもう一つの文章を読むことができます:ログサービス.
SocketLog関連のファイルをlibrary/Common/LOggerディレクトリの下に置きました.SocketLogをインストールして構成したら、Bootstrap.phpに_を追加します.InitLoggerメソッド.
/**
*
* @param \Yaf\Dispatcher $dispatcher
*/
public function _initLogger(\Yaf\Dispatcher $dispatcher)
{
//SocketLog
if (Yaf\ENVIRON === 'develop') {
if ($this->config->socketlog->enable) {
//
\Yaf\Loader::import('Common/Logger/slog.function.php');
// SocketLog
slog($this->config->socketlog->toArray(),'config');
}
}
}
Chromeでコードをデバッグできます
その他
chen-yafはいくつかの関数を導入して、library/common/functions.phpの中に置いて、すべていくつかのよく使う関数で、もしあなたのプロジェクトの中で他の関数があれば中に加えればいいです.Bootstrap.phpの編集、追加_InitFunctionメソッド.
/**
*
*/
public function _initFunction()
{
\Yaf\Loader::import('Common/functions.php');
}
まとめ
chen-yaf単純なyaf例にすぎず、Eloquent ORMとtwigが加わっている.実際のプロジェクトでは、どんどん中身を加えていく必要があります.composerパッケージを使用している以上、自分のプロジェクトをするときに第三者パッケージを簡単に使用することができ、車輪を繰り返すことを避けることができます.サードパーティ製のパッケージをお勧めします.再構築プロジェクトでも使用しています.1.carbon:日時の操作.2.php-resque:キューの操作.3.sokil/php-mongo:mongodbの操作.4.monolog:ログの操作.
より良い交流のために、QQ群を加えることができます:415183844
コードワードは容易ではありませんて、転載してもとの住所を明記して下さい、Jsyz Chenのブログ:http://jsyzchen.com/2016/10/22/yaf-example/ありがとうございます!