php开发入门

手把手教大神,PHP开发者不得不学的24个超级PHP库

作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!1. Dispatch – 微框架Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。

//包含库

include 'dispatch.php';

// 定义你的路由

get('/greet', function () {

//渲染视图

render('greet-form');

});

//post处理

post('/greet', function () {

$name = from($_POST, 'name');

// render a view while passing some locals

render('greet-show', array('name' => $name));

});

// serve your site

dispatch();

你可以匹配特定类型的HTTP请求和路径,渲染视图或做更多事情。如果你合并Dispatch和其他框架,那你就可以拥有一个相当强大并且轻量级的程序!2. Klein – PHP快如闪电的路由Klein是另一款针对PHP5.3+版本的轻量级路由库。虽然它有一些比Dispatch冗长的语法,但它相当快。这有一个例子:

respond('/[:name]', function ($request) {

echo 'Hello ' . $request->name;

});

你也可以定制来指定HTTP方法和使用正则表达式作为路径。

respond('GET', '/posts', $callback);

respond('POST', '/posts/create', $callback);

respond('PUT', '/posts/[i:id]', $callback);

respond('DELETE', '/posts/[i:id]', $callback);

//匹配多种请求方法:

respond(array('POST','GET'), $route, $callback);

//你或许也想在相同的地方处理请求

respond('/posts/[create|edit:action] /[i:id] ', function ($request, $response) {

switch ($request->action) {

// do something

}

});

对于小型项目来说这是很棒的,但当你把一个像这样的库用于大型应用时,你不得不遵守规矩,因为你的代码可能很快就变得不可维护。所以你最好搭配一个像Laravel或者CodeIgniter这样完全成熟的框架。3. Ham – 带缓存的路由库Ham也是一款轻量级的路由框架,但是它利用缓存甚至获得了更快的速度。它通过把任何I/O相关的东西缓存进XCache/APC。下面是一个例子:

require '../ham/ham.php';

$app = new Ham('example');

$app->config_from_file('settings.php');

$app->route('/pork', function($app) {

return "Delicious pork.";

});

$hello = function($app, $name='world') {

return $app->render('hello.html', array(

'name' => $name

));

};

$app->route('/hello/<string>', $hello);

$app->route('/', $hello);

$app->run();

这个库要求你至少安装了XCache和APC其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。但是如果你拥有一个安装它们其一的主机,或者你可以操控你的web服务器,你应该尝试这款最快的框架。4. Assetic – 资源管理Assetic是一个PHP的资源管理框架,用于合并和减小了CSS/JS资源。下面是例子。

use Assetic\Asset\AssetCollection;

use Assetic\Asset\FileAsset;

use Assetic\Asset\GlobAsset;

$js = new AssetCollection(array(

new GlobAsset('/path/to/js/*'),

new FileAsset('/path/to/another.js'),

));

//当资源被输出时,代码会被合并

echo $js->dump();

以这种方式合并资源是一个好主意,因为它可以加速站点。不仅仅总下载量减小了,也消除了大量不必要的HTTP请求(这是最影响页面加载时间的两件事)5. ImageWorkshop – 带层的图片处理ImageWorkshop是一个让你操控带层图片的开源库。借助它你可以重定义尺寸、裁剪、制作缩略图、打水印或做更多事情。下面是一个例子:

// 从norway.jpg图片初始化norway层

$norwayLayer = ImageWorkshop::initFromPath('/path/to/images/norway.jpg');

// 从watermark.png图片初始化watermark层(水印层)

$watermarkLayer = ImageWorkshop::initFromPath('/path/to/images/watermark.png');

$image = $norwayLayer->getResult(); // 这是生成的图片!

header('Content-type: image/jpeg');

imagejpeg($image, null, 95); // We choose to show a JPG with a quality of 95%

exit;

ImageWorkshop被开发用于使一些PHP中最通用的处理图片的案例简化,如果你需要一些更强大的东西,你应该看下Imagine library!6. Snappy – 快照/PDF库Snappy是一个PHP5库,可以生成快照、URL、HTML、PDF。它依赖于wkhtmltopdf binary(在Linux,Windows和OSX上都可用)。你可以像这样使用它们:

require_once '/path/to/snappy/src/autoload.php';

use Knp\Snappy\Pdf;

//通过wkhtmltopdf binary路径初始化库

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');

//通过把Content-type头设置为pdf来在浏览器中展示pdf

header('Content-Type: application/pdf');

header('Content-Disposition: attachment; filename="file.pdf"');

echo $snappy->getOutput('http://www.github.com');

要记得,你的主机提供商可能不允许调用外部二进制程序。7. Idiorm – 轻量级ORM库Idiorm是个人之前在本网站教程中用过最喜爱的一款。它是一款轻量级的ORM库,一个建立在PDO之上的PHP5查询构造器。借助它,你可以忘记如何书写乏味的SQL:

$user = ORM::for_table('user')

->where_equal('username', 'j4mie')

->find_one();

$user->first_name = 'Jamie';

$user->save();

$tweets = ORM::for_table('tweet')

->select('tweet.*')

->join('user', array(

'user.id', '=', 'tweet.user_id'

))

->where_equal('user.username', 'j4mie')

->find_many();

foreach ($tweets as $tweet) {

echo $tweet->text;

}

Idiorm有一个姊妹库叫Paris,Paris是一个基于Idiorm的Active Record实现。8. Underscore – PHP的工具腰带Underscore是原始Underscore.js的一个接口 – Javascript应用的工具腰带。PHP版本没有让人失望,而且支持了几乎所有原生功能。下面是一些例子:

__::each(array(1, 2, 3), function($num) { echo $num . ','; }); // 1,2,3,

$multiplier = 2;

__::each(array(1, 2, 3), function($num, $index) use ($multiplier) {

echo $index . '=' . ($num * $multiplier) . ',';

});

// prints: 0=2,1=4,2=6,

__::reduce(array(1, 2, 3), function($memo, $num) { return $memo + $num; }, 0); // 6

__::find(array(1, 2, 3, 4), function($num) { return $num % 2 === 0; }); // 2

__::filter(array(1, 2, 3, 4), function($num) { return $num % 2 === 0; }); // array(2, 4)

这个库也支持链式语法,这使得它更为强大。9. Requests – 简单HTTP请求Requests是一个简化HTTP请求的库。如果你和我一样,几乎从来都记不住传递给Curl的各种各样的参数,那么它就是为你准备的:

$headers = array('Accept' => 'application/json');

$options = array('auth' => array('user', 'pass'));

$request = Requests::get('https://api.github.com/gists', $headers, $options);

var_dump($request->status_code);

// int(200)

var_dump($request->headers['content-type']);

// string(31) "application/json; charset=utf-8"

var_dump($request->body);

// string(26891) "[…]"

借助这个库,你可以发送HEAD、GET、POST、PUT、DELTE和PATCH HTTP请求,你可以通过数组添加文件和参数,并且可以访问所有相应数据。10. Buzz – 简单的HTTP请求库Buzz是另一个完成HTTP请求的库。下面是一个例子:

$request = new Buzz\Message\Request('HEAD', '/', 'http://google.com');

$response = new Buzz\Message\Response();

$client = new Buzz\Client\FileGetContents();

$client->send($request, $response);

echo $request;

echo $response;

因为它缺乏文档,所以你不得不阅读源码来获知它支持的所有参数。11. Goutte – Web抓取库Goutte是一个抓取网站和提取数据的库。它提供了一个优雅的API,这使得从远程页面上选择特定元素变得简单。

require_once '/path/to/goutte.phar';

use Goutte\Client;

$client = new Client();

$crawler = $client->request('GET', 'http://www.symfony-project.org/');

//点击链接

$link = $crawler->selectLink('Plugins')->link();

$crawler = $client->click($link);

//使用一个类CSS语法提取数据

$t = $crawler->filter('#data')->text();

echo "Here is the text: $t";

12. Carbon – DateTime 库Carbon 是 DateTime API 的一个简单扩展。

printf("Right now is %s", Carbon::now()->toDateTimeString());

printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver'));

$tomorrow = Carbon::now()->addDay();

$lastWeek = Carbon::now()->subWeek();

$nextSummerOlympics = Carbon::createFromDate(2012)->addYears(4);

$officialDate = Carbon::now()->toRFC2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$endOfWorld = Carbon::createFromDate(2012, 12, 21, 'GMT');

//总是以UTC对比

if (Carbon::now()->gte($endOfWorld)) {

die();

}

if (Carbon::now()->isWeekend()) {

echo 'Party!';

}

echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2分钟之前'

13. Ubench – 微型基准库Ubench 是一个用于评测PHP代码的微型库,可监控(代码)执行时间和内存使用率。下面是范例:

use Ubench\Ubench;

$bench = new Ubench;

$bench->start();

//执行一些代码

$bench->end();

//获取执行消耗时间和内存

echo $bench->getTime(); // 156ms or 1.123s

echo $bench->getTime(true); // elapsed microtime in float

echo $bench->getTime(false, '%d%s'); // 156ms or 1s

echo $bench->getMemoryPeak(); // 152B or 90.00Kb or 15.23Mb

echo $bench->getMemoryPeak(true); // memory peak in bytes 内存峰值

echo $bench->getMemoryPeak(false, '%.3f%s'); // 152B or 90.152Kb or 15.234Mb

//在结束标识处返回内存使用情况

echo $bench->getMemoryUsage(); // 152B or 90.00Kb or 15.23Mb

(仅)在开发时运行这些校验是一个好主意。14. Validation – 输入验证引擎Validation 声称是PHP库里最强大的验证引擎。但是,它能名副其实吗?看下面:

use Respect\Validation\Validator as v;

//简单验证

$number = 123;

v::numeric()->validate($number); //true

//链式验证

$usernameValidator = v::alnum()->noWhitespace()->length(1,15);

$usernameValidator->validate('alganet'); //true

//验证对象属性

$user = new stdClass;

$user->name = 'Alexandre';

$user->birthdate = '1987-07-01';

//在一个简单链中验证他的属性

$userValidator = v::attribute('name', v::string()->length(1,32))

->attribute('birthdate', v::date()->minimumAge(18));

$userValidator->validate($user); //true

你可以通过这个库验证你的表单或其他用户提交的数据。除此之外,它内置了很多校验,抛出异常和定制错误信息。15. Filterus – 过滤库Filterus是另一个过滤库,但它不仅仅可以验证,也可以过滤匹配预设模式的输出。下面是一个例子:

$f = Filter::factory('string,max:5');

$str = 'This is a test string';

$f->validate($str); // false

$f->filter($str); // 'This '

Filterus有很多内建模式,支持链式用法,甚至可以用独立的验证规则去验证数组元素。16. Faker – 假数据生成器Faker 是一个为你生成假数据的PHP库。当你需要填充一个测试数据库,或为你的web应用生成测试数据时,它能派上用场。它也非常容易使用:

//引用Faker 自动加载器

require_once '/path/to/Faker/src/autoload.php';

//使用工厂创建来创建一个Faker\Generator实例

$faker = Faker\Factory::create();

//通过访问属性生成假数据

echo $faker->name; // 'Lucy Cechtelar';

echo $faker->address;

// "426 Jordy Lodge

// Cartwrightshire, SC 88120-6700"

echo $faker->text;

// Sint velit eveniet. Rerum atque repellat voluptatem quia ...

只要你继续访问对象属性,它将继续返回随机生成的数据。17. Mustache.php – 优雅模板库Mustache是一款流行的模板语言,实际已经在各种编程语言中得到实现。使用它,你可以在客户端或服务段重用模板。 正如你猜得那样,Mustache.php 是使用PHP实现的。

$m = new Mustache_Engine;

echo $m->render('Hello {{planet}}', array('planet' => 'World!')); // "Hello World!"

建议看一下官方网站Mustache docs 查看更多高级的例子。18. Gaufrette – 文件系统抽象层Gaufrette是一个PHP5库,提供了一个文件系统的抽象层。它使得以相同方式操控本地文件,FTP服务器,亚马逊 S3或更多操作变为可能。它允许你开发程序时,不用了解未来你将怎么访问你的文件。

use Gaufrette\Filesystem;

use Gaufrette\Adapter\Ftp as FtpAdapter;

use Gaufrette\Adapter\Local as LocalAdapter;

//本地文件:

$adapter = new LocalAdapter('/var/media');

//可选地使用一个FTP适配器

// $ftp = new FtpAdapter($path, $host, $username, $password, $port);

//初始化文件系统

$filesystem = new Filesystem($adapter);

//使用它

$content = $filesystem->read('myFile');

$content = 'Hello I am the new content';

$filesystem->write('myFile', $content);

也有缓存和内存适配器,并且随后将会增加更多适配器。19. Omnipay – 支付处理库Omnipay是一个PHP支付处理库。它有一个清晰一致的API,并且支持数十个网关。使用这个库,你仅仅需要学习一个API和处理各种各样的支付处理器。下面是一个例子:

use Omnipay\CreditCard;

use Omnipay\GatewayFactory;

$gateway = GatewayFactory::create('Stripe');

$gateway->setApiKey('abc123');

$formData = ['number' => '4111111111111111', 'expiryMonth' => 6, 'expiryYear' => 2016];

$response = $gateway->purchase(['amount' => 1000, 'card' => $formData]);

if ($response->isSuccessful()) {

//支付成功:更新数据库

print_r($response);

} elseif ($response->isRedirect()) {

//跳转到异地支付网关

$response->redirect();

} else {

//支付失败:向客户显示信息

exit($response->getMessage());

}

使用相同一致的API,可以很容易地支持多种支付处理器,或在需要时进行切换。20. Upload – 处理文件上传Upload是一个简化文件上传和验证的库。上传表单时,这个库会校验文件类型和尺寸。

$storage = new \Upload\Storage\FileSystem('/path/to/directory');

$file = new \Upload\File('foo', $storage);

//验证文件上传

$file->addValidations(array(

//确保文件类型是"image/png"

new \Upload\Validation\Mimetype('image/png'),

//确保文件不超过5M(使用"B","K","M"或者"G")

new \Upload\Validation\Size('5M')

));

//试图上传文件

try {

//成功

$file->upload();

} catch (\Exception $e) {

//失败!

$errors = $file->getErrors();

}

它将减少不少乏味的代码。21. HTMLPurifier – HTML XSS 防护HTMLPurifier是一个HTML过滤库,通过强大的白名单和聚集分析,保护你代码远离XSS攻击。它也确保输出标记符合标准。 (源码在github上)

require_once '/path/to/HTMLPurifier.auto.php';

$config = HTMLPurifier_Config::createDefault();

$purifier = new HTMLPurifier($config);

$clean_html = $purifier->purify($dirty_html);

如果你的网站允许用户提交 HTML 代码,不修改就展示代码的话,那这时候就是用这个库的时候了。22. ColorJizz-PHP – 颜色操控库ColorJizz是一个简单的库,借助它你可以转换不同的颜色格式,并且做简单的颜色运算

use MischiefCollective\ColorJizz\Formats\Hex;

$red_hex = new Hex(0xFF0000);

$red_cmyk = $hex->toCMYK();

echo $red_cmyk; // 0,1,1,0

echo Hex::fromString('red')->hue(-20)->greyscale(); // 555555

它已经支持并且可以操控所有主流颜色格式了23. PHP Geo – 地理位置定位库phpgeo是一个简单的库,用于计算地理坐标之间高精度距离。例如:

use Location\Coordinate;

use Location\Distance\Vincenty;

$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit 茂纳凯亚峰

$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit

$calculator = new Vincenty();

$distance = $calculator->getDistance($coordinate1, $coordinate2); // returns 128130.850 (meters; ≈128 kilometers)

它将在使用地理位置数据的app里出色工作。你可以试译 HTML5 Location API,雅虎的API(或两者都用,我们在weather web app tutorial中这样做了),来获取坐标。24. ShellWrap – 优美的命令行包装器借助 ShellWrap 库,你可以在PHP代码里使用强大的 Linux/Unix 命令行工具。

require 'ShellWrap.php';

use \MrRio\ShellWrap as sh;

//列出当前文件下的所有文件

echo sh::ls();

//检出一个git分支

sh::git('checkout', 'master');

//你也可以通过管道把一个命令的输出用户另一个命令

//下面通过curl跟踪位置,然后通过grep过滤’html’管道来下载example.com网站

echo sh::grep('html', sh::curl('http://example.com', array(

'location' => true

)));

//新建一个文件

sh::touch('file.html');

//移除文件

sh::rm('file.html');

//再次移除文件(这次失败了,然后因为文件不存在而抛出异常)

try {

sh::rm('file.html');

} catch (Exception $e) {

echo 'Caught failing sh::rm() call';

}

当命令行里发生异常时,这个库抛出异常,所以你可以及时对之做出反应。它也可以通过管道让你一个命令的输出作为另一个命令的输入,来实现更强的灵活性。

来自:kelinlin

展开
收起

2020年PHP开发程序员还有希望吗?

我们整理最近5年的每个月TIOBE发布的编程语言排名来看,PHP排名一直都徘徊在六到十名之间,最近一次公布中PHP排在第八名。

TIOBE发布2020编程排名

PHP开发优势主要在web开发,web领域开发语言有很多,常用有java,Python,visual basic .net等等,而且大型web开发我们一般还是会选择java为主,这不仅考虑安全问题,而且还考虑网站稳定行。

所以网上很多PHP开发者很担心容易被某种编程语言代替其中web领域位置,而且我们发现现在网上都是在宣传学习java,c,Python等语言,PHP慢慢淡出开发者的视野。

我们觉得PHP在web开发领域不会在短时间被其他编程语言代替,PHP作为20多年的老牌编程语言,目前在开发领域已相对成熟稳定,不管新编程语言还是目前旧编程语言也无法代替。

ThinkPHP(FCS)是一个轻量级的中型PHP框架,新手容易上手,开发速度快,即使你对php开发不是很了解,但是ThinkPHP依然可以让初学者快速了解PHP开发过程,ThinkPHP适合用于中小项目的开发。

ThinkPHP

php框架中位居首榜的我们认为还是Laravel。

我们常说composer 是php的未来,如果没有composer,PHP肯定要走向没落。

Laravel设计思维非常先进的,基本可以PHP发挥到最的地步,Laravel适合中级以上开发者。

Laravel

PHP开发者听说过Swoole?Swoole是PHP异步网络通信引擎,PHP开发者可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务,当然还有一个workerman,不了解的,赶紧去学习,PHP未来是有希望。

展开
收起

PHP开发环境搭建工具有哪些?

对于php开发小白来说搭建一个php运行环境就是一道坎!

因为要做php开发,搭建一个能够运行php网站的服务器环境是第一步,传统的php环境软件非常复杂,好在很多公司开发了一键搭建php安装环境,一键进行php环境配置,大大节省了搭建php mysql环境的时间!对老手来说安装配置php环境也不再是一件烦琐的事。

接下来大脸猫来给大家分享七种PHP开发环境搭建工具,当然也不仅仅有这七种仅仅只是这几种比较常见;

一、phpStudy

phpStudy是一个新手入门最常用的开发环境。(还有一个梗就如同phpStudy的名字的中文意思一样PHP学习)

phpStudy是一个PHP调试环境的程序集成包;

该程序包集成最新的Apache/Nginx+PHP+MySQL+phpMyAdmin+ZendOptimizer+OpenSSL,一次性安装,无需配置即可使用,是非常方便、好用的PHP调试环境;

该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。

二、WampServer

WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。

WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。

WampServer就是Windows、Apache、Mysql、PhpMyadmin、SqlBuddy、XDebug PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。

三、XAMPP

XAMPP相对于phpStudy和WampServer就对于小白没有那么友好了,操作门槛就稍稍有点高了;而且XAMPP是目前支持操作系统最多的工具了。这样就对于在公司用Windows回家用Mac OS x的程序员就比较友好了。

XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包;

这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了;

它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。

许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿;

如果您想添加 MySQL、PHP 和 Perl,那就更难了;XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版;

XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。

四、MAMP

MAMP分为两种MAMP和MAMP Pro for Mac;MAMP就不讲了,MAMP Pro的功能真的是非常的强大,但是但是MAMP只支持Mac OS系统所以优点和缺点也非常明显;

名称MAMP是源自系统组件名称的首字母缩写:

macOS、Apache、MySQL或MariaDB和PHP,Perl或Python。

该名称源自LAMP,LAMP是广泛用于网站的所有开源软件的类似堆栈,但是用专有的macOS代替了开源Linux操作系统。(对于其他操作系统,也存在类似的“AMP”堆栈。)但是MAMP不仅限于这些组件选择。例如,可以使用Nginx代替Apache,并用MariaDB代替MySQL。

包含MAMP的某些软件包(尤其是Apache和PHP)已预先安装在macOS上。其余版本的兼容版本可轻松安装和使用。通过在便携式计算机或台式计算机上设置本地开发环境,而无需独立的Web服务器,MAMP通常与流行的CMS程序(例如WordPress和Drupal)一起使用并为其开发。

五、IIS

互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

图形界面的新IIS管理器在防火墙里不开放任何端口的情况下就可以通过HTTP的远程管理,该管理工具是完全可扩展的。

图形界面的新IIS管理器支持HTTP远程管理协议,在无需DCOM的情况下允许无缝地进行本地,远程,甚至跨互联网的连接或在防火墙里开放其它管理端口。

六、宝塔面板

宝塔面板是大脸猫觉得相对而言在这几个工具中最友好的一个

宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率。

例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化CPU、内存、流量监控图表,计划任务等功能。

宝塔面板拥有极速方便的一键配置与管理,可一键配置服务器环境(LAMP/LNMP/Tomcat/Node.js),一键部署SSL,异地备份;

提供SSH开启关闭服务,SSH端口更改,禁ping,防火墙端口放行以及操作日志查看;

CPU、内存、磁盘IO、网络IO数据监测,可设置记录保存天数以及任意查看某天数据;

计划任务可按周期添加执行,支持SHELL脚本,提供网站、数据库备份以及日志切割,且支持一键备份到又拍云存储空间,或者其他云存储空间里;

通过web界面就可以轻松管理安装所用的服务器软件,还有实用的扩展插件;

集成方便高效的文件管理器,支持上传、下载、打包、解压以及文件编辑查看。

七、UPUPW

UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。

UPUPW PHP环境集成包是目前Windows平台下最具特色的Web服务器PHP套件,包括Apache版、Ngix版和Kangle版:Apache/Nginx+PHP+MySQL+phpMyAdmin+Xdebug+Memcached+eAccelerator+ZendGuardLoader/Optimizer;

UPUPW PHP套件省去了您搭建Web服务器PHP环境的复杂程序,下载解压到装有任意Windows系统电脑的非中文目录即可运行。

绿色,安全,稳定,高速!

这七种开发环境工具就分享到这里。

今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。

#php#

展开
收起

适用于所有级别的开发人员的18个PHP工具

无论您对PHP的熟练程度如何,这个全面的列表都会为您提供18种工具,使您的开发生活更轻松,更高效。

PHP是一种快速的脚本语言,无处不在的Web开发。WordPress使用该语言作为开发人员增强平台的核心接口。它相对容易学习,并得到开发社区的良好支持。

虽然PHP可以帮助开发人员快速创建Web应用程序,但是没有与该语言相关的开发环境。相比之下,Microsoft的Visual Studio等开发环境带有许多安装功能。Visual Studio具有开箱即用的开发人员可用的编码,调试和部署功能。

PHP有很多软件包和支持工具。然而,它们往往是分散和零碎的。这可能会给希望增强其虚拟工具箱的开发人员带来问题。这个方便的指南将汇集流行的工具,开发人员可以在他们需要将PHP开发置于过载时参考这些工具。

开发环境

PHP有许多开发环境。其中包括集成开发环境(IDE)和文本编辑器,以及将多个工具和流程合二为一的混合环境。

ScriptCase

ScriptCase.net

ScriptCase.net允许开发人员快速开发支持Web的应用程序。这些应用程序支持与数据库和报告生成的连接 该软件允许您在几秒钟内从原型到生产。成本可能会禁止小公司使用它。因此,它面向中型企业。

主要特征

连接到大多数主要数据库引擎。生成包括数据透视表的图表。创建交互式报告。导出PDF,XLS等常用格式。

成本

20天免费试用。初学者 - 每年279.20美元(仅限单个数据库)。专业 - 每年319.20美元。企业 - 每年479.20美元。

SublimeText

SublimeText.com

有理由在IDE上使用文本编辑器。有时,IDE可能对某些项目来说过度杀伤。此外,当开发人员首先学习一门语言时,IDE可以成为他们学习的拐点。这个文本编辑器非常适合没有大预算或大容量服务器的初创公司。

主要特征:

转到任何功能 - 可以在编辑器中立即跳转到文件,文本或行。拆分编辑。同时编辑 - 可以一起更改多个文本或代码实例。

成本

一次性收费80美元。

Eclipse PDT

eclipse.org/pdt

将Eclipse等工具归类为IDE变得越来越困难。它变得如此之多。Eclipse是为使用Java代码的开发人员创建的。它已经扩展到包括其他语言,如PHP。虽然这个工具是开源的,但对于初创公司来说可能有些过分。它占用了相当数量的计算资源,对于小公司来说可能是稀缺的。

主要特征

PHP中的代码分析。格式化代码。语法突出显示。代码模板。单元测试。调试。内容辅助。

成本

开源(免费)

Zend Studio

zend.com

Zend Studio是一个将PHP开发提升到新水平的IDE。它具有一组强大的功能,可以部署到任何服务器,包括云中的服务器。它声称针对PHP 7进行了优化,这比以前的版本快得多。Zend Studio是适用于任何规模公司的理想工具。

主要特征

广泛的Eclipse插件功能。部署到云,包括Microsoft Azure和Amazon AWS。无缝部署到Zend Server。Zend Server实现了持续集成和强大的安全功能。

成本

个人执照:89美元。基本许可证:189美元。免费试用版可供下载。Zend Server可作为Azure上的产品提供。

XAMPP

XAMPP.org

经验丰富的开发人员熟悉Apache解决方案。XAMPP是由Apache Friends组织创建的开发平台。它适用于大多数需要MySQL数据库解决方案的组织。根据他们的要求,对于初创公司来说可能有点过分。

主要特征

它是PHP最古老的开发平台之一。它拥有超过10年的所有参与开发人员的综合经验。易于安装(通过向导)。Apache系列产品的一部分。MySQL和Perl是安装的一部分。可以在XAMPP安装之上安装CMS组件(通过Bitnami)。易于控制的面板,适用于所有组件。

成本

开源(免费)。

性能,代码分析,APM,日志记录

代码分析器,APM和日志监视器等性能工具可帮助开发人员发现效率低下和错误。同样,有许多可用于PHP的工具。根据您的开发阶段,您可以选择一种工具而不是另一种工具。例如,代码分析器在开发阶段最有效,而APM在部署后监控您的应用程序。有些工具将所有这些性能工具合二为一。

Stackify

Stackify.com/retrace

Retrace超越了标准的APM(应用程序性能监控),可以在一个易于使用的解决方案中为开发人员提供所需的所有工具。它最初只支持Java和.NET,但很快就会支持PHP。它增强了日志和错误跟踪功能,使其脱颖而出。它也具有成本效益。该工具非常适合团队诊断,改进和加速应用程序性能。

主要特征

查看与异常相关的日志记录,以便在客户执行之前快速查找并修复问题。确定应用程序堆栈的哪个部分是瓶颈以及哪些Web请求受到影响。跟踪和监控所有关键应用程序和服务器指标。通过代码分析捕获有关代码执行操作的重要详细信息。

成本

14天免费试用。非生产服务器每月10美元。每台生产服务器每月25美元 - 50美元。

ZEPHIR

zephir-lang.com

Zephir被认为是一种代码增强工具,但它本身就是一种编程语言。它使PHP编码器能够创建由PHP引擎编译但由其运行的函数。PHP是一种解释型语言,因此Zephir的编译特性比本机PHP函数创建更快的组件。该工具更适合中级开发人员。各种规模的组织都可以发现这种产品是有益的。

主要特征

使用与C类似的语言创建函数组件被编译为共享库,以便更快地运行。无法访问指针。指针可能会给开发人员带来问题,而Zephir不允许这样做。

成本

开源(免费)。

New Relic APM

Newrelic.com

New Relic是业界领先的APM,支持许多顶级语言,包括PHP,Ruby,Java和.NET。它提供了对应用程序性能的全栈可视性,包括移动应用程序和基础架构监控。

主要特征

应用程序性能趋势一目了然。浏览器,移动和基础架构监控。各个SQL语句的性能跟踪。低影响生产螺纹轮廓仪。代码级诊断。跨应用程序跟踪。

成本

每台服务器每月75-600美元,每年便宜一些。

比较New Relic和Retrace

AppDynamics

AppDynamics.com

AppDynamics迎合了寻求一体化性能监控解决方案的大型企业。企业可以将AppDynamics用作SaaS工具以及内部部署选项。

主要特征

代码级诊断。基础设施和最终用户监控。基线绩效发展。绩效指标可视化。

成本

每台服务器每月230美元。

来自Solarwinds的AppOptics

AppOptics.com

SolarWinds对其性能监控工具进行了大量更改。首先,他们收购了顶级APM TraceView。最近,他们将TraceView功能增强并集成到SolarWinds的基础设施监控工具AppOptics中。AppOptics现在支持基础架构和应用程序性能监控,帮助公司自下而上地显示其性能。

主要特征

150多个集成和插件与其他顶级工具。服务器和基础架构监控应用监控和可视化。自定义指标和分析。

成本

每位主人每月20美元。包括基础架构监控服务和每台主机400个自定义指标

调试

调试工具与代码分析器类似,通常是手工使用的。在分析器识别优化代码的机会的情况下,调试器会在代码中查找错误。

XDebug

xdebug.org

XDebug已成为PHP调试器的事实标准。XDebug是一个可以集成到IDE中的扩展,大多数IDE都支持它。它对各级开发人员都很有用。由于大多数PHP工具都包含XDebug,因此大多数组织将使用它作为使用其他工具的一部分。

主要特征

适用于大多数IDE。自2002年以来一直存在。单步调试功能。堆栈跟踪功能。可与其他前端调试解决方案一起使用。

成本

开源(免费,请求捐赠)。

DebugBar

DebugBar.com

DebugBar是任何公司开发人员的理想工具。它不是特定于PHP,而是在Web开发人员的工具箱中占有一席之地。它可以轻松找到HTML和JavaScript错误。

主要特征

检查CSS元素。评估JavaScript。可以直接对HTML进行直接更改。监控网络流量。

成本

自由

版本控制

版本控制系统可帮助开发团队管理其源代码和代码分支。当开发人员处理更新和新功能时,他们保持代码的主要分支安全。随着团队的发展,版本控制变得更加重要。在没有版本控制系统的情况下维护可靠的基础设施变得越来越困难。

Git

git-scm.org

Git是一个版本控制解决方案。您可以将Git与第三方存储库一起使用,也可以作为独立解决方案使用(不推荐)。Git很受程序员的欢迎,公司正在采用它。无论规模大小,此解决方案都适用于任何公司。您的公司可能有不同的解决方案,但许多开发人员将其用于个人项目。

主要特征

在开发社区中被许多人使用。知识很容易转移。一个相对容易学习的命令行界面。轻松支持基于云的存储库。

成本

Git是开源的(免费)。

GitHub

github.com

人们经常混淆git和GitHub,但它们是两个独立的解决方案。但是,他们经常一起工作以提供整体解决方案。GitHub是一个基于云的存储库,git可以用作其事务的机制。它被程序员广泛使用,许多公司都认识到该解决方案的好处。

主要特征

基于云的解决方案,这意味着它可以在任何地方访问。简单易学。广泛接受使技能可转移。可用于协作开发解决方案。

成本

公共存储库的开源。基于层级的定价从每月7美元(单个用户)开始,每个用户每月最多21美元用于商业许可。

Vagrant

vagrantup.com

Vagrant并不是真正意义上的版本控制解决方案。但是,它可用于控制不同版本的环境,这对PHP开发人员很有用。Vagrant为开发人员提供了创建虚拟环境的功能。例如,如果他们有理由支持多个版本的PHP,可以使用Vagrant轻松完成。这不应该是首选解决方案,也不应取代标准版本控制的需要。

主要特征

根据项目创建具有所需组件的开发环境。在不再需要环境时轻松破坏环境。

成本

自由

安全

网络安全是我们这个时代最重要的问题之一。下面的PHP安全工具可以帮助开发人员在太晚之前识别代码中的漏洞。

RIPS

RipsTech.com

2010年,一个名为RIPS的开源项目被启动,以帮助处理PHP安全性。该计划产生了一个可以检查漏洞的PHP扫描程序。随着功能的增长,它变得过于强大,无法作为一个开源项目处理,导致RIPS Tech接管该项目。之前的版本仍然可用但不受支持。

主要特征

完整的PHP支持。消除误报。可用于代码质量分析。完整的风险检测机制。符合多个行业安全标准。导出结果可用。

成本

优质产品(价格未公布)。

其他:Chrome浏览器开发

https://www.google.com/chrome/

开发人员喜欢使用Chrome浏览器,因为它有一个扩展程序,可以报告HTML页面的元素。它易于配置和学习。虽然这不是PHP解决方案,但任何Web开发(包括PHP)都使用HTML,并且有助于查看哪些HTML元素受到更改等的影响。

主要特征

容易安装,也容易使用。显示有关HTML元素的有用信息。

成本

自由

概要

PHP开发人员可以使用的大量工具使这种情况变得混乱,特别是对于不熟悉该语言的开发人员而言。幸运的是,大多数软件解决方案都可以免费(但有限)地访问该软件,以便对其进行试用,看看它是否适用于您的解决方案。

作为开发人员,随时了解您用于开发的任何工具的最新发展。

展开
收起

自己开发一个PHP框架到底有多难?

目前在市场上流行的PHP框架不少50个,国内使用频率最高的除非就是轻量级的中型框架thinkphp,基于组件的高性能php框架Yii ,设计思想是很先进的,非常适合应用各种开发模式TDD Laravel框架,一款纯PHP开发的开源高性能的PHPsocket服务器Workerman框架。

在所有框架中最适合初级php程序员是thinkphp,适合中级的Laravel,高手级别Yii,每个框架都有它的特点,而且使用方式也不也一样,所以学会两种框架你也可以成为高手了,如果自己开发一个属于自己的框架,这样就不用学习别人的框架了,那么自己开发一个PHP框架有多难?

PHP本身是简单的编程语言,学习起来不是很难,在网页应用的框架思想基本都是MVC模式或MC模式,其实就是在处理他们的关系,设计过api的程序员都应该知道,MC模式只要处理好数据返回给前端就可以,至于MVC模式就是多处理一步,利用smarty渲染前端页面,所以自己开发框架不难,而是难在于这个框架能实现哪些功能,如果你说就简单增删改查框架,那么自己去研究一下php的面向对象实现思想就可以实现。

自己为什么不开发框架?开发框架要维护,要升级功能,还不如直接使用别人完整框架的功能进行开发。

展开
收起

如何用PHP开发一个完整的网站

尽量完整的需求方案,具体到功能上:建模结构UML,建立数据库: 1、建立的表名、字段名要与他的功能有关系。 2、根据结构建立数据库表,原则是不定项内容一定要分表。 3、字段类型要考虑内容是否够用就够就好,选择适合的类型INT Varchar Date(4)设计HTML文件和脚本的实现 根据模和数据库来设计页面是个很科学的方法,当然有的时候有人喜欢根据模型设计页面,数据库基于页面设计,都是可以的。 设计页面时要考虑到每个细节,包括提示消息页面,错误页面。(5)PHP代码的书写1、先建立底层结构和文件夹(如果是大型的网站同样设计一个文件UMML)2、基础功能分类关联,以便今后代码引用。3、代码的书写,注意简洁性和函数的使用,内部函数能实现的尽量使用内部函数。4、在部分关键位置加以代码注释。(6)程序的测试和修正1、对于发现的BUG不能就解决BUG而解决,要处于完整程序考虑。避免收之东隅收之桑榆。2、对于解决过的BUG已经要详细记录,以便日后更新。多人开发应该注意什么使用版本服务器:CVS、SVN...功能:1、单个文件历史版本的记录和恢复2、文件的锁定和更新3、单个或多个文件程序之间的沟通4、保护程序的安全性不受单个程序的误操作而丢失

尽量完整的需求方案,具体到功能上:建模结构UML,建立数据库: 1、建立的表名、字段名要与他的功能有关系。 2、根据结构建立数据库表,原则是不定项内容一定要分表。 3、字段类型要考虑内容是否够用就够就好,选择适合的类型INT Varchar Date(4)设计HTML文件和脚本的实现 根据模和数据库来设计页面是个很科学的方法,当然有的时候有人喜欢根据模型设计页面,数据库基于页面设计,都是可以的。 设计页面时要考虑到每个细节,包括提示消息页面,错误页面。

(5)PHP代码的书写1、先建立底层结构和文件夹(如果是大型的网站同样设计一个文件UMML)2、基础功能分类关联,以便今后代码引用。3、代码的书写,注意简洁性和函数的使用,内部函数能实现的尽量使用内部函数。4、在部分关键位置加以代码注释。(6)程序的测试和修正1、对于发现的BUG不能就解决BUG而解决,要处于完整程序考虑。避免收之东隅收之桑榆。2、对于解决过的BUG已经要详细记录,以便日后更新。多人开发应该注意什么使用版本服务器:CVS、SVN...功能:1、单个文件历史版本的记录和恢复2、文件的锁定和更新3、单个或多个文件程序之间的沟通4、保护程序的安全性不受单个程序的误操作而丢失

文章来源:昆明网站建设专业品牌——找北网络科技(zhaobeikj.com)

展开
收起

哪种编程语言容易入门,PHP怎么样

进入互联网行业愈发觉得学习一门计算机语言是多么的重要,PHP成为众多新手学习的语言,主要原因还是在于PHP还是比较容易入门的,也是最适合新手学习的。PHP相对于其他语言,比较简单,相对好上手,比较适合零基础的人学习,但是PHP只完成了一个网站或者系统的一部分。

新手在学习PHP语言之前都会有一些疑问,那就是应该如何去学习PHP语言?想要开发一款CMS程序需要多久的学习?有哪些适合新手阅读的PHP方面书籍等等。

PHP语言本身的东西并不多,真正有用东西都在PHP之外,作为开始入门还是比较合适的,有人说过:真正的 PHP 学习是从你开发第一个项目开始。总结起来就是不仅要多看书还是多动手做。PHP语言最开始就是基础语法的学习,编程是一项技术活,看理论看基础也要多练习包括内置函数/类的学习。

学习PHP有哪些用处呢?你现在看到的百度/淘宝/京东,还是你听说过的facebook,youtube都是PHP开发的。另外,现在PHP不仅仅可以做网站开发,还可以做微信开发,手机APP开发,还可以做企业OA开发。

互联网不断发展PHP语言同样也在进步,不断的有新工具为PHP的生命力添砖加彩。随着PHP7以及Swoole框架的来临,其性能开始与Javaee不相上下。对大数据的处理也越来越好,所以其前景是光明的。

学习的书籍不如多看看官网的文档,官网的介绍是比较详细也是准确的,建议尽量不要在网上随便下载类库的源码使用,Composer提供了几乎所有做php可能会需要用到的第三方库。

就想之前说的PHP只完成了一个网站或者系统的一部分。一个运行的网站或者软件系统可以分为前端页面,后端程序,数据库,linux。而处理后端的PHP仅仅是只占了四分之一,因此每一项都要有充分的了解,一名优秀的 PHP 工程师技能,完全是靠项目累积出来的,每多做一个项目能力值和经验值就会增加。

更多资讯关注【河北达内】回“资料”获取学习礼包。

展开
收起

PHP程序员必看书籍

以下都是我看过都书籍,无论是新手或中级别的工程师,我可以保证内容质量,大佬可跳过。

概述

知识无价,还是建议各位童鞋把更多的资金投入到学习中。书名排名不分前后。

《PHP7内核剖析》

PHP7内部剖析

深入理解PHP最佳良品。

《鸟哥的Linux私房菜》

鸟哥的Linux私房菜

PHP码农最爱的LINUX入门书籍。

《Modern PHP (中文版)》

Modern PHP 中文版

学习(新)PHP的好书。

《Learning PHP设计模式》

Learning PHP设计模式

不会设计模式,你跟我说你是程序员?

《细说PHP》

细说PHP

这是我入门PHP的时候看的一本书,内容虽然有些摘抄,但知识点概括的很全。

《高性能PHP 7》

高性能PHP7

PHP全球开发者大会上推荐的一本书,感觉内容很前卫、新鲜。吕毅大佬翻译的。

《Docker技术入门与实战》

Docker技术入门与实战

你确定你不了解下Docker ?

《疯狂JAVA讲义》

疯狂JAVA讲义

其实Java应该在PHP开发者的必会名单内。

《Redis入门指南(第2版)》

Redis入门指南(第2版)

nosql 了解一下?

《算法谜题》

算法谜题

代码敲累了?来~换换脑子。

致谢

感谢各位看完本篇白话文,最近几天一直在写相当于过往经历一样的文章,并不是不去创造新的内容,而是我更希望把我所知道的,我做过的,告诉大伙,好的地方可借鉴,差的地方可预防。我也不是一个大佬。互相学习把。谢谢。

展开
收起

ThinkPHP5框架使用快速入门

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

一、安装ThinkPHP5

安装需求:PHP版本不得小于5.4;

1、从官网进行下载安装

2、通过composer进行安装

如果还未安装composer,请先安装composer并配置环境变量

运行如下命令,进行安装:

composer create-project topthink/think=5.0.* tp5 --prefer-dist

3、通过git安装

3.1、运行如下命令,安装thinkphp的应用项目

git clone https://github.com/top-think/think tp5

安装成功后的界面:如下图所示

3.2、进入到刚才已下载的tp5目录下,运行如下命令,安装thinkphp的核心框架

git clone https://github.com/top-think/framework thinkphp

安装成功后的界面:如下图所示

安装完成,验证是否安装成功,在浏览器中输入:http://hostname/tp5/public/

如果浏览器显示如下图所示,则说明框架安装成功。

二、目录结构框架的目录结构,如下图所示:

application:应用目录

index:模块目录

index/config.php:模块配置文件

index/common.php:模块公共函数文件

index/controller:控制器目录

index/model:模型目录

index/view:视图目录

config.php:应用配置文件

command.php:命令工具配置文件

common.php:应用公共函数文件

tags.php:应用行为扩展定义文件

extend:扩展类库目录

public:WEB 部署目录(对外访问目录)

static:静态资源存放目录(css,js,image)

index.php:应用入口文件

.htaccess:用于apache重写

router.php:快速测试文件

runtime:应用的运行时目录

vendor:通过composer安装的第三方类库目录

thinkphp:系统核心目录

lang:系统语言包目录

library:框架核心类库目录

tpl:系统模板目录

base.php:基础定义文件

route:路由配置目录

三、ThinkPHP框架最基本的架构

thinkphp是基于MVC模式开发的,业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

1、入口文件

用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。入口文件的内容如下:

在入口文件index.php中加载了基础文件base.php文件,在base.php中干了这样一些事情:

载入Loader类

注册自动加载

注册错误和异常处理机制

实现日志接口

注册类库别名

加载完基础文件之后,最后在index.php中执行应用并响应。

2、应用

ThinkPHP的应用是一个管理系统架构及生命周期的对象,由系统创建完成,应用通常在入口文件中被调用和执行,每个应用都具有自己独立的模块、config配置文件以及common公共函数文件。

3、模块

一个应用是可能是由多个模块组成的,通俗的来说,这些模块即为该应用目录下面的一个个的子目录,每个模块都有自己独立的MVC结构、config配置文件以及common公共函数文件。

注:模块名称请避免使用PHP保留关键字,否则会造成系统错误。

4、控制器

控制器主要负责接收发送过来的请求,并调用相关的模型业务逻辑的数据处理,并最终将用户请求数据渲染到视图页面上。

5、模型

模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。在定义模型时,要注意和表名对应,因为框架中的模型会自动对应数据库中的数据表。在ThinkPHP中模型类的命名规则是除去表前缀的数据表名称,命名方式采用的驼峰命名法,而且模型的首字母要大写。

6、视图

视图接收从控制器渲染过来的数据,将数据渲染的成用户可见的页面。

7、命名空间

命名空间是程序设计者命名的内存区域,程序设计者根据需指定一些有名字的空间域,把一些全局实体分别存放到各个命名空间中,从而与其他全局实体分隔开。

通俗的说,每个名字空间都是一个名字空间域,存放在名字空间域中的全局实体只在本空间域内有效。名字空间对全局实体加以域的限制,从而合理的解决命名冲突。

展开
收起

PHP开发及部署(基础篇)

我们一直在倾听大家口述的故事,访谈时间也有最初的1个半小时拉长到平均5天,我们把能写的故事做成了类似《人物故事》专栏,同步更新在微博#我是社会人#,简书#树洞#专栏。说实话,并不是每个人的经历都能写成真正的故事,因为故事对人物要求太过丰满,丰满到每一个细节都需要价值观的转变和伏笔,所有故事场景都需要合并去重复,最终留下的故事寥寥无几。这些故事无一例外的反映了一个问题,生活手艺和平台的缺失。为了能弥补这一块内容,我们决定和大家一起学门手艺。在网站开发方面,我们主推PHP方面的知识。在职场学习方面,我们主推OFFICE系列相关知识。在赚钱生存方面,我们主推CFA系列相关知识。目前暂定三项,所有的这些都会收录在微博#有情调特爱学#话题中。想起自己毕业那会学C#的日日夜夜,甚是苦恼。由于当年从事WinForm方向,既不是APP也不是Web,所以错过了很好的Web井喷期红利,当年学习做Web开发的人,接的项目学的手艺,足以养活一家人了。为此,至今我都后悔不已。我想,只要移动互联不死,以后就应该是Web的天下了,因为大部分架构已从十年前的C/S架构转为B/S架构了,而WinForm方向早已转入企业级,.net (微软的产品)对运行库有强制性要求,这样就逼着开发者和甲方都需要安装这么庞大的运行库,费用也不低,虽说不上孰是孰非,但互联网轻度、快速开发应该是王道。PS:凑足300字申请原创,所有课程均免费,我们自行学习收费课程并经提炼、实践制作,如不反感,请帮忙转发, 并在微博上刺客_老莫 @戏子入画_夏雨 ,谢谢支持。

展开
收起