2013年4月26日

自己动手写个小框架之五

摘要: 上一篇提到smarty的封装,这篇将介绍控制类对其封装的调用。控制类中有多个action函数,每个函数可以对应不同的页面,一个函数中可能根据业务逻辑对应多个页面,对页面数据的绑定也同时在action函数中绑定。我们看看defaultController.php 1 <?php 2 3 class defaultController extends Controller { 4 5 public function indexAction($parameter) { 6 $request = new request(); 7 //给session赋值... 阅读全文

posted @ 2013-04-26 20:44 d&lufd 阅读(487) 评论(0) 推荐(0) 编辑

自己动手写个小框架之四

摘要: 框架使用了smarty模板引擎,由libs和tpls两个文件夹及内容组成。在libs中我们可以看到Smarty.class.php文件,它是smarty的核心文件。我们要做的是加载它,然后声明一个smarty对象,进行一些基本的设置。在kernel中,由baseController.php对其进行封装。 1 <?php 2 3 class Controller { 4 5 private $Tpl; 6 7 public function __construct() { 8 $path = $_SERVER['DOCUMENT_ROOT'] . '/d... 阅读全文

posted @ 2013-04-26 18:53 d&lufd 阅读(248) 评论(0) 推荐(0) 编辑

自己动手写个小框架之三

摘要: 接着介绍Loader类,即kernel里的autoload.php。 1 <?php 2 final class Loader{ 3 protected $register; 4 5 public function __construct($register){ 6 $this->register = $register; 7 } 8 9 public function __get($key){10 return $this->register->get($key);11 }12 13 ... 阅读全文

posted @ 2013-04-26 18:13 d&lufd 阅读(202) 评论(0) 推荐(0) 编辑

自己动手写个小框架之二

摘要: 麻雀虽小五脏俱全,我们给小框架做些布局如图所示其中library为公共类,kernel为框架运行所需的基础类,Controller为控制类,libs和tpls则是smarty运行所需的核心类及文件,Config为配置内容如后续数据库连接配置文件等。框架大致运行流程为,router路由解析后调用相应的Controller类并执行调用的action方法,然后绑定数据到tpls里相应的tpl模板文件进行显示。 其中,程序的入口为index.php文件,主要对路由地址进行解析。假设地址为http://localhost/dluf/index.php/default/index/dluf,那么d... 阅读全文

posted @ 2013-04-26 17:53 d&lufd 阅读(354) 评论(0) 推荐(0) 编辑

自己动手写个小框架之一

摘要: 使用PHP进行开发的过程中,多少都有过从学习使用模板引擎(实现页面前端设计和后台业务逻辑代码清晰分开,便捷开发)到使用成熟的框架(如zend、symfony等)的学习经历,或者一些朋友直接在一些开源程序上进行二次开发(如国内的ecshop、discuz,国外的wordpress等),也都会有了解并学习其模板机制的过程。在这基础上,我们可以试着写个小东西玩玩。 首先,我们需要大致了解一下smarty模板引擎和php的反射类。最新的smarty模板引擎可以从http://www.smarty.net/download下载得到,这里我们使用Smarty-3.1.13.zip。下载后解压可以看到... 阅读全文

posted @ 2013-04-26 16:35 d&lufd 阅读(488) 评论(1) 推荐(0) 编辑

2013年2月21日

php shmop 内存读写操作

摘要: shmop php在linux上操作共享内存的函数关于php操作内存,我选择了shmop扩展,其方法只有6个:shmop_open 打开内存块.shmop_write 向内存块中写入数据shmop_size 获得内存块大小shmop_read 读取内存块数据shmop_delete 删除内存块数据shmop_close 关闭内存块 <?phpclass shared { private $shm_id; private $shm_key = 0xff3; private $shm_size = 1024; function _... 阅读全文

posted @ 2013-02-21 17:54 d&lufd 阅读(1150) 评论(0) 推荐(0) 编辑

2013年2月20日

nokogiri 足球比赛数据

摘要: 抓取足球比赛数据View Code 1 require 'open-uri' 2 require 'nokogiri' 3 require 'pp' 4 require 'json' 5 6 7 url = 'http://info.sporttery.com/football/ttg_vp.php' 8 urlhafu = 'http://info.sporttery.com/football/hafu_vp.php' 9 def grabinfo(url)10 doc = Nokogiri::H 阅读全文

posted @ 2013-02-20 12:31 d&lufd 阅读(259) 评论(2) 推荐(1) 编辑

2013年2月6日

ruby nokogiri 数据抓取

摘要: 记录测试代码require 'open-uri'require 'nokogiri'require 'pp'require 'json'weburl = {}weburl['sinawbo'] = 'http://hot.weibo.com/?leftnav=1' #新浪热门微博weburl['bk'] = 'http://www.qiushibaike.com/8hr/page/' #bkdef getInfo(key,url) if key == 'sin 阅读全文

posted @ 2013-02-06 17:32 d&lufd 阅读(738) 评论(0) 推荐(0) 编辑

2013年1月17日

Symfony2 多数据库连接

摘要: 一、在app/config/parameters.ini里配置; These parameters can be imported into other config files; by enclosing the key with % (like %database_user%); Comments start with ';', as in php.ini[parameters] database_driver = pdo_mysql database_host = 192.168.0.1 database_port = database_nam... 阅读全文

posted @ 2013-01-17 12:55 d&lufd 阅读(947) 评论(0) 推荐(0) 编辑

Symfony2 Console Component开发

摘要: 在Symfony2中可以用命令行调用并运行你的程序,这在需要设置定时任务时十分方便。我们只需把要执行的逻辑操作按照框架命令行接口的格式写好,然后通过终端进入项目根目录,运行命令即可。 一、在Bundle下新建一个文件夹Command用来存放我们要编写的命令 runCommand.php<?php/** * Description of runCommand * * @author dluf */namespace Acme\DemoBundle\Command;use Symfony\Bundle\FrameworkBundle\Controller\Controller;use Sy. 阅读全文

posted @ 2013-01-17 10:43 d&lufd 阅读(565) 评论(0) 推荐(0) 编辑

导航