ホームページ > php教程 > php手册 > 軽量 php フレームワーク phpk v1.0 がリリースされました

軽量 php フレームワーク phpk v1.0 がリリースされました

WBOY
リリース: 2016-06-14 00:02:08
オリジナル
1883 人が閲覧しました

phpk フレームワークの概要

PHPK は、使いやすく、拡張も簡単な軽量の PHP フレームワークです。 phpk は php フレームワークであるだけでなく、js フレームワークでもあり、新しい js 内部ライブラリのセットが組み込まれており、巨大な jquery を完全に放棄し、すべてのフロントエンドがまったく新しいマイクロワールドです。操作は効率的でありながら機能が強力で、操作が柔軟で、自由に拡張できます。 PHPK は、PHP フレームワークの「新星」として、優れた PHP フレームワークの共通点を継承し、多くのマイクロ イノベーションを実現してきました。

機能の説明

  • OOP の書き方、完全にオブジェクト指向の考え方に基づいて書かれています
  • マルチプロジェクト管理、共有データキャッシュ層
  • js および css ファイルを自動的に圧縮します
  • js マイクロカーネルが埋め込まれており、拡張が簡単です
  • URL ルーティング、3 つのルーティング モードをサポート
  • フック操作、システム カーネルと外部拡張機能をサポート
  • アシスタント機能、周辺機能拡張をサポート
  • テンプレート ビュー、テンプレート エンジンはビューとローカル キャッシュをサポートします
  • wedgit、個別のブロック読み込みをサポート
  • プラグインのメカニズムはサードパーティのライブラリを簡単に参照できます
  • 多言語、多言語拡張をサポート
  • 複数の暗号化方式
  • マルチキャッシュメカニズム
  • 複数のデータベース エンジン
  • サポートの配布
  • 複数機関の認証メカニズム
  • WAP または Web ブラウジングの自動検出をサポート
  • クライアント言語の自動検出をサポート

使用説明書

1. 電話をかける方法は?

phpk フォルダーをローカルにダウンロードし、phpk フォルダーの上にindex.php を作成します。内部のコードは次のとおりです。

<?php
include './phpk/base.php';
?>
ログイン後にコピー

次に、index.php にアクセスすると、「phpk フレームワークへようこそ!」と表示されます。

2. 設定方法は?

アクセスの最初のステップが成功すると、プロジェクトのルート ディレクトリにさらにいくつかのフォルダー (plugins、data、projects、projects/www) が見つかります。もちろん、ルート ディレクトリには config.inc.php もあります。このファイルはプロジェクト全体の設定ファイルです。コードは次のとおりです。

<?php
//全局配置声明在这个文件中.
$CONFIG['system']['db']['driver']                 = 'mysql';//数据库类型
$CONFIG['system']['db']['charset']                = 'utf8';//数据库编码
$CONFIG['system']['db']['prefix']                 = 'ig_';//表名前缀
$CONFIG['system']['db']['master']['host']         = 'localhost';//主库地址
$CONFIG['system']['db']['master']['database']     = 'itest';//数据库名称
$CONFIG['system']['db']['master']['port']         = '3306';//默认端口
$CONFIG['system']['db']['master']['user']         = 'root';//数据库帐号
$CONFIG['system']['db']['master']['password']     = '123456';//数据库密码
$CONFIG['system']['app']['allow_dir']             = array("www","wap","admin","tools");//系统允许的应用
$CONFIG['system']['app']['auto_detect']           = 1; //是否自动侦测是wap还是web
$CONFIG['system']['app']['defalut_web_path']      = 'www';//默认的应用目录
$CONFIG['system']['app']['defalut_wap_path']      = 'wap';//默认的手机应用目录
$CONFIG['system']['security']                     = '_phpk_@#!%DFDS_';   // 系统的加密字符串
$CONFIG['language']['switch_on']                  = 1; //是否打开语言包
$CONFIG['language']['default_lang']               = 'zh-cn';//默认语言
$CONFIG['language']['auto_detect']                = 1; //是否自动侦测语言
$CONFIG['language']['get_var']                    = 'lang'; //前端get获取语言包的字符
$CONFIG['language']['lang_list']                  = 'zh-cn';//语言包列表,用逗号隔开
ログイン後にコピー
追加のプロジェクト設定ファイル config.inc.php も、projects/www フォルダーの下にあります。コードは次のとおりです。

<?php
//项目配置声明在这个文件中.
$CONFIG['debug']                        = 1;            // 项目的调试模式,1为打开,0为关闭
$CONFIG['route']['url_type']            = 2;            // url模式,1为字符串模式,2为pathinfo模式
$CONFIG['route']['default_controller']  = 'index';      // 默认控制器文件
$CONFIG['route']['default_action']      = 'index';      // 默认action接口
$CONFIG['output']['charset'] 			= 'utf-8';	    // 页面字符集
$CONFIG['output']['errorlog'] 			= 0;	        // 是否记录错误日志
$CONFIG['output']['forceheader']		= 0;		    // 强制输出页面字符集,用于避免某些环境乱码,0为关闭,1为开启
$CONFIG['output']['gzip'] 				= 0;		    // 是否采用 Gzip 压缩输出
$CONFIG['output']['tmpl_cache'] 		= 0;		    // 是否开启模版缓存,0为内存输出做调试模式用,1为检测缓存输出做开发模式用,2为调用缓存输出,3做正式环境用
$CONFIG['output']['layout_on'] 		    = 1;		    // 是否开启布局,0为关闭,1为开启
$CONFIG['output']['layout_name'] 		= 'layout';     // 布局的文件
$CONFIG['output']['layout_item'] 		= '{_content}'; // 布局的内部替换的标签名称
$CONFIG['output']['tmpl_suffix'] 		= '.php';		// 模版的后缀
$CONFIG['output']['default_tmpl'] 		= 'default';    // 默认模版目录
$CONFIG['output']['csszip'] 		    = 1;		    // 是否压缩css文件,1为压缩,0为不压缩
$CONFIG['output']['jszip'] 		        = 1;		    // 是否压缩js文件,1为压缩,0为不压缩
$CONFIG['loader']['libs']    		    = array();		// 是否加载外围的类
$CONFIG['loader']['helpers']     	    = array();		// 是否加载外围函数
$CONFIG['loader']['hooks']     		    = array();		// 是否加载钩子
$CONFIG['session']['prefix']            = 'pk_';        // session的前缀
$CONFIG['session']['id']                = 'phpk';       // session的id
$CONFIG['session']['expire']            = 1200;         // session的超时时间
$CONFIG['session']['auto_start']        = 1;            // 是否自启动session,1为开启,0为关闭
$CONFIG['cookie']['prefix']             = 'pk_';        // cookie的前缀
$CONFIG['cookie']['path']               = '/';          // cookie的有效路径
$CONFIG['cookie']['expire']             = 1200;         // cookie的超时时间
$CONFIG['cookie']['domain']             = '';           // cookie的作用域
$CONFIG['cache']['type']                = 'file';       // 缓存类型
$CONFIG['cache']['table']               = 'tb_cache';   // 缓存表的名称
$CONFIG['cache']['prefix']              = 'cache_';     // 缓存前缀
$CONFIG['cache']['time']                = 3600;         // 缓存过期时间
$CONFIG['cache']['check']               = true;         // 是否进行缓存的数据校验
$CONFIG['cache']['compress']            = true;         // 是否缓存压缩
$CONFIG['auth']['auth_on']              = 1;            //是否启动权限认证
$CONFIG['auth']['auth_type']            = 'phpk';       //权限认证方式
ログイン後にコピー
プロジェクト設定ファイルはプロジェクト全体の設定ファイルを継承しており、書き換えることもできます。この利点は、プロジェクトの柔軟性が高まることです。

3. テンプレートの使用方法は?

まず、projects/www/controllers/indexController.class.php フォルダーにコントローラー ファイルを書き込み、次のように記述します。

<?php
class IndexController extends Controller
{
    function index ()
    {
        $welcome = "欢迎使用phpk框架!";
        $this->assign('welcome', $welcome);
        $this->display('welcome');
    }
}
ログイン後にコピー
テンプレート ファイルはレイアウトをサポートしており、このように project/www/views/layouts/layout.php に記述することができます (このファイルの名前はプロジェクト内で構成することも、個別に指定することもできます)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><?php echo $welcome;?></title>
</head>
<body>
{_content}
</body>
</html>
ログイン後にコピー

次に、projects/www/views/default/index.php テンプレート ファイルに次のように記述します。

<?php echo $welcome;?>
ログイン後にコピー
phpk テンプレートは、js および css の略語呼び出しをサポートしています:

{css cssfile1,cssfile2}
{js jsfile1,jsfile2}
ログイン後にコピー
また、{img}{js}{css}{pro}{url}{public} などのいくつかの静的呼び出しメソッドもサポートしています。できるだけシンプル、合理化、標準化するように努めてください。

phpk の組み込みテンプレート エンジンは、ローカル キャッシュを使用せずにメモリに直接出力することも、プロジェクトの完了後にキャッシュ ファイルを直接呼び出すこともできます。

4. データをクエリするには?

phpk フレームワークは、一般的なフレームワークの ORM (リレーショナル データベース マッピング) を放棄し、ユーザーが簡単に開始できるようにします。以下はモデルの使用例です (projects/www/model/indexModel.class.php):

<?php
class IndexModel extends Model{
    /**
     * 检测用户名
     * @param string $username
     * @param string $password
     * @return multitype:
     */
    function checkUser($username,$password){
        $sql = "select uid,username,group_id from tb_user where username='$username' and password='$password'";
        return $this->select($sql,1);
    }
    /**
     * 更新用户登录信息
     * @param int $uid
     */
    function updateUser($uid,$arr = array()){
        $data = array('last_login_time'=>time(),'last_login_ip'=>getIp());
        $result = array_merge($data, $arr);
        $this->update("tb_user", $result,"uid='$uid'");
    }
    
    
}
ログイン後にコピー

5. フック、ヘルパー関数、周辺ライブラリの使用方法は?

phpk フレームワークは、codeigniter のフックのアイデアに従い、thinkphp の動作システムを利用し、使いやすさとシンプルさの原則を遵守しています。フックを設定するには、まず以下をプロジェクト設定ファイルに追加する必要があります:

$CONFIG['loader']['hooks']    = array(
            'pre_controller' => 'auth'
        );		// 是否加载钩子
ログイン後にコピー
キーの値については、次の手順を参照してください:

     * pre_system
     *     系统执行的早期调用.仅仅在系统类和配置项加载完毕的时候. 没有执行路由或者其它的过程.
     * pre_controller
     *     在调用你的任何控制器之前调用.此时所用的基础类,路由选择和安全性检查都已完成.
     * post_controller_constructor
     *     在你的控制器实例化之后,任何方法调用之前调用,传入的参数为实例化的控制器。
     * post_controller
     *     在你的控制器完全运行之后调用,传入的参数为实例化的控制器。
     * display_override
     *     output.tmpl_cache=0时截取调试模式下的模版, 用来在系统执行末尾向web浏览器发送最终页面,传入参数为解析后的模版内容。调用后记得exit。
     * cache_override
     *     截取cache模式下的模版,这可以让你使用自己的方法来显示缓存文件,传入参数为解析后的缓存文件。调用后记得exit。
     * post_system
     *     在最终着色页面发送到浏览器之后,浏览器接收完最终数据的系统执行末尾调用
ログイン後にコピー
値 value は、ロードする必要があるファイル名です。フック ファイルは、projects/controllers/hooks/authHook.class.php

に配置されます。

アシスタント ファイルと周辺ライブラリのロードはより簡単です。次のように構成ファイルを記述するだけです:

$CONFIG['loader']['libs']    		    = array('html','csv');		// 是否加载外围的类
$CONFIG['loader']['helpers']     	    = array('dir','str');		// 是否加载外围函数
ログイン後にコピー

もちろん、独自のヘルパー ファイルとクラス ライブラリを拡張して、それらをそれぞれ extensions/functions/ および extensions/classes/ に配置することもできます。システムは、まずプロジェクトをロードするファイルが存在するかどうかを判断し、次にシステム カーネルを判断します。ファイル。

リリースアドレス

ダウンロードアドレス: http://code.taovao.org/p/phpk/file/2590/phpk.rar

SVN アドレス: http://code.taobao.org/p/phpk/src/

プロジェクトコミュニケーショングループ: 61591845

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