php汇总 (7)

TP借鉴了Java思想,基于PHP5,充分利用了PHP5的特性,部署简单只需一个入口文件,一切搞定,简单高效,中文文档齐全,入门超级简单。自带模板引擎,具有独特的数据验证和自动填充功能,框架更新速度比较迅速。

缺点:一个Model中可以操作多个表,但TP只能一个。
TP默认初始化了很多配置,使用起来很方便,但自然也会影响效率。但是把一些加载配置的时间拿去研究算法,这些小影响近乎可以忽略了。

CodeIgniter框架

优点:

配置简单,上手很快,全部的配置使用PHP脚本来配置,没有使用很多太复杂的设计模式,执行性能和代码可读性上都不错,执行效率比较高,具有基本的MVC功能. 快速简洁,代码量少,框架简单,容易上手,自带了很多简单好用的library,框架适合中小型项目,大型项目也不是不可以,只是扩展能力稍差。

缺点:

1. 把Model层简单的理解为数据库操作

2. PHP框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要

laravel框架(目前最新的是5.3,要求PHP版本较高5.6)
       优点:

1.Laravel注重代码的模块化和可扩展性。

2.artisan: 命令行工具,很多手动的工作都自动了

3.可继承的模版,简化view的开发和管理

Laravel一直是PHP开发者最受欢迎的PHP框架。这是一个年轻的框架,但是拥有优雅的语法,可简单快速开发你的应用。它拥有大多数常见的功能,如:路由,身份验证,会话,队列和缓存。 

缺点:

laravel的中英文文档比较少 demo也比较少 有时候一个功能要试好久 甚至要看源码

YII框架(目前是2.0版本)

优点:

1、快速,敏捷,不拖沓,给程序员飞翔的能力;

2、有gii功能!(创建控制器,model层,crud等操作);

3、具有高度的可重用性和可扩展性,是纯粹的面向对象的。开发速度快,完备的文档,可重用性可高扩展,是最高效的开发框架之一。

缺点:

1、对Model层的指导和考虑较少

2、文档实例较少

3、英文太多

4、要求PHP技术精通,OOP编程要熟练!

5、要求会bootstrap

38 、代码管理工具

我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:

1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;

2. Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;

3. Git鼓励分Branch(分支),而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有merge时用的是Beyond Compare工具合并后再Commit的;

4. SVN在Commit前,我们都建议是先Update一下,跟本地的代码编译没问题,并确保开发的功能正常后再提交

SVN 的主要功能

SVN属于集中化的版本控制系统,有个不太精确的比喻:SVN = 版本控制+ 备份服务器

SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。

功能有许多我就不一一列了,SVN大都采用图形界面操作,直观,上手快。

Git的主要功能

Git是一个分布式版本控制系统,操作命令包括:clone,pull,push,branch ,merge ,rebas,Git擅长的是程序代码的版本化管理。

SVN 的优缺点

SVN对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便。

Git的优缺点

对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。不支持中文,图形界面支持差,使用难度大。不易推广。

SVN 和 Git 哪个更适用于项目管理?

SVN更适用于项目管理, Git仅适用于代码管理。

一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维,每个成员在工作中都有产出物,  包括了文档、设计代码、程序代码,这些都需要按项目集中进行管理的。SVN能清楚的按目录进行分类管理, 使项目组的管理处于有序高效的状态。

现在越来越多人使用git做为版本控制工具,我以前的公司也是使用git.

39、手写单例模式怎么写

三私一公。

class Example

{

//保存例实例在此属性中

private static $_instance;

//构造函数声明为private,防止直接创建对象

private function __construct()

{

echo \'I am Construceted\';

}

//单例方法

public static function singleton()

{

if(!isset(self::$_instance))

{

$c=__CLASS__;

self::$_instance=new $c;

}

return self::$_instance;

}

//阻止用户复制对象实例

public function __clone()

{

trigger_error(\'Clone is not allow\' ,E_USER_ERROR);

}

function test()

{

echo("test");

}

}

// 这个写法会出错,因为构造方法被声明为private

$test = new Example;

// 下面将得到Example类的单例对象

$test = Example::singleton();

$test->test();

// 复制对象将导致一个E_USER_ERROR.

$test_clone = clone $test;

?>

40、nosql和Mysql的区别

也即非关系型数据库和关系型数据库。

目前世界上主流的存储系统大部分还是采用了关系型数据库,其主要有一下优点:

1.事务处理—保持数据的一致性;

2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上只有一处);

3.可以进行Join等复杂查询。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpyyp.html