# yang_book **Repository Path**: dafeiji/yang_book ## Basic Information - **Project Name**: yang_book - **Description**: 老杨带你学Thinkphp3 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2016-01-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yang_book 本目录是《老杨带你学Thinkphp3》的随书所有代码托管。应用场景的项目会单独一个仓库用于演示。 本代码示列里使用的Thinkphp是 2015-03-11官网下载的完整版。 ## 目录结构 - . - ./README.md - ./examples 示列 - ./attach 附件 - ./ThinkPHP 框架目录 ## 示列特点 基于 http://v3.bootcss.com/ 修改而来。 实现了滚动导航。 实现了ajax读取源码展示。 实现了代码高亮,代码复制本来那个手册里有zeroCopy,我参考源代码实现,结果复制按钮出现了,点击不起作用。哎没文档的困难。反正源码不多,直接看源码多方便。 所有示列放在一个页面显示避免多新开窗口的麻烦。 开放的文档,可以通过coding上的git 库 托管和演示 ## 文档扩展方法 1.公共资源放examples 里的Public里 2.ThinkPHP框架公用 3.如果是简单的示列可以通过在startup里建控制器和模板和模型实现 4.独立的demo如auth这类,通过入口文件引入共同框架,然后自动生成项目目录自己补充 // +---------------------------------------------------------------------- // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',True); //define('APP_DEBUG',false); // 定义应用目录 define('APP_PATH','./Application/'); // 引入ThinkPHP入口文件 require './ThinkPHP/ThinkPHP.php'; 5.导航可以参照目前的一级、二级结构自己添加,a里href写对应demo的演示区块id 6.演示区域又分效果和代码2个tab 如下面的 h2标题 里 id对应导航上的锚点

安全

yang_book/examples/safe
参见项目代码  admin:admin
新窗打开
效果是在以home结尾id的div里,一般是iframe,不要有/ safe是examples下层目录名 自由指定高度。 #xxx_code 的div 里面内容是代码 用section标签显示代码所处文件路径 safe的代码是手写的,没有高亮效果 其他的代码是通过data-ajax属性地址ajax加载的如template 模板的:
function example($id){ header('type-content:text/html;charset:utf-8;'); static $example_data = array( 'startup'=>array('Index/index'), 'startup_tags'=>array('Index/tags', 'Index/tags.html'), 'controller_home'=>array('Hello/hello'), 'model'=>array('Model/index'), 'template'=>array('Template/index', 'Template/index.html'), ); $current = $example_data[$id]; $output = ''; foreach ($current as $key => $method) { $output.= $this->source($method); } exit($output); } example 方法里 $example_data 存id和对应的相应模板文件。通过source方法定位文件和返回文件里对应id所包括文件的处理显示字符串。 locationFile 方法是定位文件的并返回相关代码的,可以自己指定规则。目前我只指定了模板和控制器文件规则。你们也可以扩展函数、模型等。具体实现看代码很容易理解的。 ## 欢迎补完 本演示支持数据库,如果你想用什么表,可以在attach目录建对应表的生成sql。可以指定表前缀哦。examples.sql是我的备份。 对了为了兼容本地和coding数据库,请配置文件里将配置存为$config 变量,然后按照下面的方式做判断兼容: '配置值' 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES' =>array( 'blog/read/:id' => '/blog/:1', ), 'URL_MODEL' => 2, // 如果你的环境不支持PATHINFO 请设置为3 'DB_TYPE' => 'mysql', 'DB_HOST' => 'localhost', 'DB_NAME' => 'examples', 'DB_USER' => 'root', 'DB_PWD' => '', 'DB_PORT' => '3306', 'DB_PREFIX' => 'model_', // 'FIRE_SHOW_PAGE_TRACE'=>true, ); if(isset($_ENV['VCAP_SERVICES'])){ $json = json_decode($_ENV['VCAP_SERVICES'], true); $db = $json['mysql'][0]['credentials']; $file_root = $json['filesystem-1.0']['credentials']['host_path']; $config['DB_HOST'] = $db['hostname']; $config['DB_NAME'] = $db['name']; $config['DB_USER'] = $db['username']; $config['DB_PWD'] = $db['password']; $config['DB_PORT'] = $db['port']; } return $config; ## 联系方式 qq: 917647288 email:917647288@qq.com 微信:yangweijiester 微博:黑白世界4648