SpeedPHP是一个以快速学习为基础的PHP框架,适合于我这样刚开始学习框架的人了解下框架的应用结构和流程。
URL:
下载下来软件包后直接解压到某个文件夹就可以使用了。三个文件夹一个文件,controller为控制器负责交互处理,model为模型文件负责数据库处理。spddephp是核心库文件,index.php是配置文件。
controller文件夹中的main.php是程序入口点,其中继承自spController的类名表示访问此类的控制器名,而类中的方法表示访问此功能的方法名。
对数据库的操作由model中的以数据库表名为文件名的php文件来处理,其中类名和数据库表名相同,类中定义了主键和表名。
在index.php中对数据库进行设置,在$spConfig数组中写入"db"=>数组,在控制器中使用简单的find,findall就可以对数据进行查询操作等。
在index.php中使用view开启smarty支持,然后再设置一下smarty的属性就可以使用了。
关于数据处理
先要配置数据库,然后写一下单个数据表的模型就可以了。
操作函数find($conditions,$sort,$fields)条件可以是键值对数组也可以是字符串,同样类似的操作函数有findAll,create($row),update($conditions,$row),delete($conditions),findBy($field,$value)等同于待条件的find,update($conditions,$field,$value)简化了update的操作,deleteByPk($pk)依照主键删除,findCount($conditions)统计符合条件的记录个数,可以使用query方法来执行cud类的sql语句,findsql执行r类的sql操作。dumpSql用于访问最后执行的sql语句。
数据验证类spVerifier依附于spModel类,在spModel的子类中定义规则数组,在控制器中调用spVerifier方法验证。其要求待验证数据必须是数组,返回结果如果是1或者true则意为不可验证,返回数组代表不通过,返回false意味着验证成功。
使用spAcess存储数据,在第一个参数中描述是对数据进行添加、读取、删除操作。
分页使用spPager,他会产生一个pager的结果,注意参数传入为page
建立缓存在findall之前加spCache(360)360为时间,若为-1则是清理缓存。可以针对函数的某种情况进行缓存,即有条件。
数据表的三种关联关系以及查询:一对一,一对多,多对多
作为主表的user类,它使用了$linker来设置关联信息。添加信息时$userObj->spLinker()->create($newrow);
修改信息$userObj->spLinker()->update($conditions,
$updaterow);删除信息$userObj->spLinker()->delete($conditions);
find和findall类似于上面这种情况。
一对多,多对多类似上面的情况。总体上这三种关系都要设置类型type,关联表示map,关联字段等有时还需要是有中间表。
关于模板
首先要开启smarty支持,设置好模板目录和编译、临时文件目录,最好仅在Control层去调用View层的视图
生成真实静态HTML文件,使用spHtml我们只要在应用程序配置中开启(“html=arrray(enable
=>true)”)了生成HTML的选项,取得文件的地址才能进行生成,然后使用spHtml的make(单个)/makeAll(批量)方法,就可以生成/批量生成对应的静态HTML页面,开启生成HTML后,spUrl函数会自动检查对应的地址是不是静态页面,如果是的话,将显示静态页面的地址,而不是显示动态的PHP页面地址。
同时借用自动模板功能可以实现只顾自变成然后后期处理模板的效果。开启自动模板在index.php中的view中设置。
speedphp中可以使用smarty的所有特性,也可以使用speedphp专用的smarty函数:spUrl和输出spUrl()函数结果一样,显示一个URL地址。T和输出
T()函数的结果一样,显示多语言情况下的翻译结果。我以前还纠结过翻译的函数呢,原来这么发达。
技巧
$this->gblist =
spClass('guestbook')->findAll();直接实例化类然后查询,如果设置了自动模板将调用相应的模显示。
$name = $this->spArgs("name", "jake"); //
可以获取到表单的name,第二个参数是当name没有值时返回的默认值
************************************
关于二级目录中使用speedphp还没有理解
************************************
数据缓存spAccess,url构造spUrl:在程序中:echo
spUrl("main","show");在Smarty模板
a=show}>参数为数组smarty中参数顺序写出
'url_path_info' =>
TRUE即可开启PATH_INFO功能,开启后,除了访问URL变成了index.php/main/index的形式
dump输出变量,对数组很方便.
使用spHtml生成静态文件时,还需要打开URl的"url_path_info"=>TRUE,才能显示为静态的链接。