亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1984 | 回復(fù): 1
打印 上一主題 下一主題

iwp - sae 版本 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-11 18:29 |只看該作者 |倒序瀏覽
iwp - sae 版本






http://1.iwp001.sinaapp.com/iwp/public/?q=framework.doc.index
http://1.iwp001.sinaapp.com/iwp/public/?q=testcase.index


那就在 sae 上開發(fā)吧,暫時...


文檔集成了一個 不到100行的 wiki引擎


單元測試是我之前自己寫的 kencore-unit




Php代碼
  1. 1.<?php   
  2. 2.Core_Autoloader::loadFile(COREPATH . '/vendor/WikiDoc.class.php');   
  3. 3.Core_Autoloader::loadFile(COREPATH . '/vendor/TplEngine.class.php');   
  4. 4.  
  5. 5./**  
  6. 6. * Iwp 文檔查看器  
  7. 7. *  
  8. 8. */  
  9. 9.class Pkg_Iwp_Doc {   
  10. 10.      
  11. 11.    const queryHome = 'query-home';   
  12. 12.    const queryController = 'query-controller';   
  13. 13.    const queryAction = 'query-action';   
  14. 14.    const queryApiName = 'api-index';   
  15. 15.      
  16. 16.    static $pageTitle = '';   
  17. 17.      
  18. 18.    static $apiQueryHome = 'http://iwp.iamsese';   
  19. 19.    static $apiController = 'api';   
  20. 20.    static $apiAction = 'index';   
  21. 21.      
  22. 22.    static function lookup(array $vars){   
  23. 23.           
  24. 24.        static $tplEngine = null;   
  25. 25.        if (!$tplEngine){   
  26. 26.            $tplConfig = array(   
  27. 27.                'templateDir' => dirname(__FILE__) . '/_views',   
  28. 28.                'enableCache' => false,   
  29. 29.            );   
  30. 30.            $tplEngine = new TplEngine($tplConfig);   
  31. 31.               
  32. 32.            // 注入擴展開發(fā)   
  33. 33.            WikiDoc::addPlugin('title',"Pkg_Iwp_Doc::plugin_title");   
  34. 34.            WikiDoc::addPlugin('apilink',"Pkg_Iwp_Doc::plugin_apilink");   
  35. 35.               
  36. 36.        }   
  37. 37.           
  38. 38.        $apiName = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryApiName,'index');   
  39. 39.           
  40. 40.        self::$apiQueryHome = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryHome,'http://iwp.iamsese');   
  41. 41.        self::$apiController = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryController,'api');   
  42. 42.        self::$apiAction = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryAction,'index');   
  43. 43.           
  44. 44.           
  45. 45.        // 過濾特殊字符   
  46. 46.        $apiName = preg_replace('/[^a-z0-9_]+/i', '', $apiName);   
  47. 47.        $apiName = strtolower(trim($apiName));   
  48. 48.           
  49. 49.        $api_content = "{$apiName} 未找到";   
  50. 50.        $last_mod = FALSE;   
  51. 51.           
  52. 52.        do {   
  53. 53.            if (emptyempty($apiName)) {   
  54. 54.                $api_content = "錯誤 500: 無效的 apiName ";   
  55. 55.                break;   
  56. 56.            }   
  57. 57.            $apiFile = Pkg_Iwp_Doc::getApiFile($apiName);   
  58. 58.            if ($apiFile){   
  59. 59.                $last_mod = filemtime($apiFile);   
  60. 60.                $api_content = WikiDoc::parse(file_get_contents($apiFile));   
  61. 61.                break;   
  62. 62.            }   
  63. 63.        } while(false);   
  64. 64.                       
  65. 65.        $tplEngine->assign('page_title',Pkg_Iwp_Doc::$pageTitle);   
  66. 66.        $tplEngine->assign('api_content',$api_content);   
  67. 67.        $tplEngine->assign('last_mod',$last_mod ? date('y-m-d H:i:s',$last_mod) : '未知' );   
  68. 68.                  
  69. 69.        $tplEngine->display('display.php');   
  70. 70.    }   
  71. 71.      
  72. 72.    static function getApiFile($apiName){   
  73. 73.        $apiFile = dirname(__FILE__) . '/api' . "/{$apiName}.txt";   
  74. 74.        if (is_readable($apiFile)){   
  75. 75.            return $apiFile;   
  76. 76.        }   
  77. 77.        return false;   
  78. 78.    }   
  79. 79.      
  80. 80.    /**  
  81. 81.     * 增加 title 標簽  
  82. 82.     *   
  83. 83.     * <<title Felix Pleșoianu>>  
  84. 84.     *   
  85. 85.     * @param string $title  
  86. 86.     * @return string  
  87. 87.     */  
  88. 88.    static function plugin_title($title){   
  89. 89.        Pkg_Iwp_Doc::$pageTitle = trim($title);   
  90. 90.        return '';   
  91. 91.    }   
  92. 92.      
  93. 93.    /**  
  94. 94.     * 增加 applnk 標簽,用于內(nèi)部api name鏈接  
  95. 95.     *   
  96. 96.     * <<applnk about , 關(guān)于>>  
  97. 97.     *   
  98. 98.     * @param string $apiName  
  99. 99.     * @return string  
  100. 100.     */  
  101. 101.    static function plugin_apilink($apiName){   
  102. 102.           
  103. 103.        static $tpl = '[%s %s]';   
  104. 104.           
  105. 105.        $secs = explode(',',trim($apiName));   
  106. 106.        if (!emptyempty($secs)){   
  107. 107.            $link = array_shift($secs);   
  108. 108.            if (emptyempty($secs)) $text = $link;   
  109. 109.            else $text = implode(',',$secs);   
  110. 110.               
  111. 111.            $link = self::$apiQueryHome . Core_AppUtils::url(self::$apiController,self::$apiAction,array(   
  112. 112.                self::queryApiName => trim($link)   
  113. 113.            ));   
  114. 114.            return sprintf($tpl,$link,$text);   
  115. 115.        }   
  116. 116.        return $apiName;   
  117. 117.    }   
  118. 118.}  
  119. <?php
  120. Core_Autoloader::loadFile(COREPATH . '/vendor/WikiDoc.class.php');
  121. Core_Autoloader::loadFile(COREPATH . '/vendor/TplEngine.class.php');

  122. /**
  123. * Iwp 文檔查看器
  124. *
  125. */
  126. class Pkg_Iwp_Doc {
  127.        
  128.         const queryHome = 'query-home';
  129.         const queryController = 'query-controller';
  130.         const queryAction = 'query-action';
  131.         const queryApiName = 'api-index';
  132.        
  133.         static $pageTitle = '';
  134.        
  135.         static $apiQueryHome = 'http://iwp.iamsese';
  136.         static $apiController = 'api';
  137.         static $apiAction = 'index';
  138.        
  139.         static function lookup(array $vars){
  140.                
  141.                 static $tplEngine = null;
  142.                 if (!$tplEngine){
  143.                         $tplConfig = array(
  144.                                 'templateDir' => dirname(__FILE__) . '/_views',
  145.                                 'enableCache' => false,
  146.                         );
  147.                         $tplEngine = new TplEngine($tplConfig);
  148.                        
  149.                         // 注入擴展開發(fā)
  150.                         WikiDoc::addPlugin('title',"Pkg_Iwp_Doc::plugin_title");
  151.                         WikiDoc::addPlugin('apilink',"Pkg_Iwp_Doc::plugin_apilink");
  152.                        
  153.                 }
  154.                
  155.                 $apiName = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryApiName,'index');
  156.                
  157.                 self::$apiQueryHome = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryHome,'http://iwp.iamsese');
  158.                 self::$apiController = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryController,'api');
  159.                 self::$apiAction = Core_AppUtils::val($vars,Pkg_Iwp_Doc::queryAction,'index');
  160.                
  161.                
  162.                 // 過濾特殊字符
  163.                 $apiName = preg_replace('/[^a-z0-9_]+/i', '', $apiName);
  164.                 $apiName = strtolower(trim($apiName));
  165.                
  166.                 $api_content = "{$apiName} 未找到";
  167.                 $last_mod = FALSE;
  168.                
  169.                 do {
  170.                         if (empty($apiName)) {
  171.                                 $api_content = "錯誤 500: 無效的 apiName ";
  172.                                 break;
  173.                         }
  174.                         $apiFile = Pkg_Iwp_Doc::getApiFile($apiName);
  175.                         if ($apiFile){
  176.                                 $last_mod = filemtime($apiFile);
  177.                                 $api_content = WikiDoc::parse(file_get_contents($apiFile));
  178.                                 break;
  179.                         }
  180.                 } while(false);
  181.                                        
  182.                 $tplEngine->assign('page_title',Pkg_Iwp_Doc::$pageTitle);
  183.                 $tplEngine->assign('api_content',$api_content);
  184.                 $tplEngine->assign('last_mod',$last_mod ? date('y-m-d H:i:s',$last_mod) : '未知' );
  185.                                
  186.                 $tplEngine->display('display.php');
  187.         }
  188.        
  189.         static function getApiFile($apiName){
  190.                 $apiFile = dirname(__FILE__) . '/api' . "/{$apiName}.txt";
  191.                 if (is_readable($apiFile)){
  192.                         return $apiFile;
  193.                 }
  194.                 return false;
  195.         }
  196.        
  197.         /**
  198.          * 增加 title 標簽
  199.          *       
  200.          * <<title Felix Pleșoianu>>
  201.          *
  202.          * @param string $title
  203.          * @return string
  204.          */
  205.         static function plugin_title($title){
  206.                 Pkg_Iwp_Doc::$pageTitle = trim($title);
  207.                 return '';
  208.         }
  209.        
  210.         /**
  211.          * 增加 applnk 標簽,用于內(nèi)部api name鏈接
  212.          *       
  213.          * <<applnk about , 關(guān)于>>
  214.          *
  215.          * @param string $apiName
  216.          * @return string
  217.          */
  218.         static function plugin_apilink($apiName){
  219.                
  220.                 static $tpl = '[%s %s]';
  221.                
  222.                 $secs = explode(',',trim($apiName));
  223.                 if (!empty($secs)){
  224.                         $link = array_shift($secs);
  225.                         if (empty($secs)) $text = $link;
  226.                         else $text = implode(',',$secs);
  227.                        
  228.                         $link = self::$apiQueryHome . Core_AppUtils::url(self::$apiController,self::$apiAction,array(
  229.                                 self::queryApiName => trim($link)
  230.                         ));
  231.                         return sprintf($tpl,$link,$text);
  232.                 }
  233.                 return $apiName;
  234.         }
  235. }
復(fù)制代碼
這個是幫助文檔的生成類




  index.txt 內(nèi)容如下
寫道
<<title 對 Iwp 的介紹>>
大多數(shù)PHPer都想寫出運行狀態(tài)良好的應(yīng)用程序,而且希望盡可能做得簡單且不費事。而Iwp就是一個達成以上目標的框架。

===== Iwp 是什么? 框架又是什么?
當發(fā)明計算機編程不久之后,便有人發(fā)現(xiàn),這其中涉及到了太多的重復(fù)操作。之后,也許是 Ada Lovelace(人類歷史上的首位程序員),又或許是 Alan Turning,決定將計算機程序模塊化,從而使得片段程序代碼可以重復(fù)使用。PHP 程序員們早已習(xí)慣了將需要重復(fù)使用的代碼寫在函數(shù)中,并將這些函數(shù)放在 include 文件里。

同樣的,框架是為重用而發(fā)明的,存放在獨立的文件中,用來簡化重復(fù)操作的代碼。

<<apilink about,關(guān)于作者 vb2005xu >>

{{http://1.iwp001.sinaapp.com/iwp/public/me.jpg}}

[http://vb2005xu.iteye.com/blog/1443451 關(guān)于這個文檔的說明]

論壇徽章:
0
2 [報告]
發(fā)表于 2012-03-11 21:11 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP