首页 > 下载 >  类库下载

  • 下面我们来演示如何使用这个扩展包自动为项目生成API文档,其原理是通过扫描routes.php为指定路由生成相应API文档,比如我们的路由文件定义了一个路由如下:Route::get('api/v1/index', 'ApiController@index');这个路由对应的控制器方法定义如下:/**  * API首页  *  * 欢迎来到Laravel学院,Laravel学院致力于提供优质Laravel中文学习资源  *  */ public function index() { }需要指出的是,Laravel API 生成器通过action方法上的注释生成 API 相应的描述信息。我们使用扩展包提供的api:generate命令来实现 API 文档生成:php artisan api:generate --routePrefix=api/v1/*该命令的意思是扫描路由中匹配api/v1/*的规则并为相应控制器方法生成API文档,

    其它类库15522017-12-19
  • <?php function randpw($len=8,$format='ALL'){ $is_abc = $is_numer = 0; $password = $tmp =''; switch($format){ case 'ALL': $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; case 'CHAR': $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; case 'NUMBER': $chars='0123456789'; break; default : $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; } // www.jb51.net mt_srand((double)microtime()*1000000*getmypid()); while(strlen($password)<$len){ $tmp =substr($chars,(mt_rand()%strlen($chars)),1); if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){ $is_numer = 1; } if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){ $is_abc = 1; } $password.= $tmp; } if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){ $password = randpw($len,$format); } return $password; } for($i = 0 ; $i < 10; $i++){ echo randpw(8,'NUMBER'); echo "<br>"; }无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,给大家带来的就是RandomLib-master生成随机数的PHP库这个库很好用,大家如果需要可以直接下载。

    其它类库24482017-12-19
  • [php] view plain copy <?php       class StackTest extends PHPUnit_Framework_TestCase       {           public function testEmpty()           {               $stack = array();               $this->assertEmpty($stack);               return $stack;           }           /**            * @depends testEmpty            */           public function testPush(array $stack)           {               array_push($stack, 'foo');               $this->assertEquals('foo', $stack[count($stack)-1]);               $this->assertNotEmpty($stack);               return $stack;           }           /**            * @depends testPush            */           public function testPop(array $stack)           {               $this->assertEquals('foo', array_pop($stack));               $this->assertEmpty($stack);           }       }                              ?>1. 什么是单元测试?【百度百科】单元测试是对软件中的最小可测单元进行检查和验证。是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。2. 作用是什么?【废话】检查软件、程序的可行性,稳定性。通过单元测试能够避免在迭代、升级等过程中,引起重复的、多余的问题。避免在别人修改代码的时候,影响到你的逻辑3. 哪些程序需要写单元测试(PHP)?【理想】理想的单元测试应当覆盖程序中所有可能的路径,包括正确的和错误的路径,个单元测试通常覆盖一个函数或方法中的一个特定路径。【现实】model、helper、controller中的函数必须测试、路径覆盖到所有可能性

    其它类库11302017-12-19
  • #!/usr/bin/env php <?php /**  * phpDocumentor  *  * PHP Version 5.3  *  * @copyright 2010-2013 Mike van Riel / Naenius (http://www.naenius.com)  * @license   http://www.opensource.org/licenses/mit-license.php MIT  * @link      http://phpdoc.org  */trigger_error('phpDocumentor2 should be run from the phpdoc file, not phpdoc.php', E_USER_DEPRECATED);require_once __DIR__.'/phpdoc';phpDocumentor 2是一个可以分析php源代码和注释块并生成文档的程序。基于phpdocumentor 1和javadoc启发而来,它持续创新的使用了一些新技术和支持php的新特性。phpDocumentor 2的特点:    兼容php5.3,全面支持命名空间和闭包等。    识别支持任何tag,以及一些追加的 (比如 @link).     更快的处理速度。 较  phpDocumentor 1在Zend Framework 下的处理耗时有了明显的减少。    低内存消耗,小中大型工程的内存消耗分别低于20MB,40MB和100MB。    增量解析。如果你有之前运行phpdoc获得的structure.xml文件,那么小修改后重新生成文档的速度将提升80%。    简单就能创建模板,只需1小步和编辑3个文件。    兼容1代的命令行。例如 --directory, --file and --target     两步式处理。首先生成structure文件,你可以根据这个文件来格式化相关信息,用自己的工具来展现信息!

    其它类库15022017-12-19
  • Samsui 是一个用于建立对构建你的应用程序测试数据有用的 PHP 对象库。通过 Samsui,你可以快速建立原型应用,产生你测试原型所需要的数据。use Samsui\Factory;   $factory = new Factory();   // define an object quickly $factory->define('person')     ->sequence('personId')     ->attr('firstName', 'James')     ->attr('lastName', 'Clark')     ->attr('email', function ($i, $o) {         return strtolower($o->firstName . '.' . $o->lastName . '@example.com');     })     ->attr('createdTime', function () {         return time();     });

    其它类库12772017-12-19
  • <?php    session_start();    header("Content-type:image/png");    $img_width=100;    $img_height=20;    srand(microtime()*100000);    for($i=0;$i<4;$i++)    {         $new_number.=dechex(rand(0,15));    }    $_SESSION[check_auth]=$new_number;    $new_number=imageCreate($img_width,$img_height);//创建图象    ImageColorAllocate($new_number,255,255,255);  //设置背景色为白色    for($i=0;$i<strlen($_SESSION[check_auth]);$i++)    {        $font=mt_rand(3,5);        $x=mt_rand(1,8) + $img_width*$i/4;        $y=mt_rand(1,$img_height/4);        $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符颜色        imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//输出字符    }    ImagePng($new_number);    ImageDestroy($new_number); ?>GD库是PHP进行图象操作一个很强大的库。先在php.ini里增加一行引用:extension=php_gd2.dll重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。表单auth.html

    验证码类库59472017-12-19
  • <?php /**  * A Compatibility library with PHP 5.5's simplified password hashing API.  *  * @author Anthony Ferrara <ircmaxell@php.net>  * @license http://www.opensource.org/licenses/mit-license.html MIT License  * @copyright 2012 The Authors  */ namespace {     if (!defined('PASSWORD_BCRYPT')) {         /**          * PHPUnit Process isolation caches constants, but not function declarations.          * So we need to check if the constants are defined separately from           * the functions to enable supporting process isolation in userland          * code.          */         define('PASSWORD_BCRYPT', 1);         define('PASSWORD_DEFAULT', PASSWORD_BCRYPT);         define('PASSWORD_BCRYPT_DEFAULT_COST', 10);     }相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的:$password = md5($_POST["password"]);上面这段代码是不是很熟悉?然而MD5的加密方式目前在PHP的江湖中貌似不太受欢迎了,因为它的加密算法实在是显得有点简单了,而且很多破解密码的站点都存放了很多经过MD5加密的密码字符串,所以这里我是非常不提倡还在单单使用MD5来加密用户的密码的。SHA256 和 SHA512其实跟前面的MD5同期的还有一个SHA1加密方式的,不过也是算法比较简单,所以这里就一笔带过吧。而这里即将要说到的SHA256 和 SHA512都是来自于SHA2家族的加密函数,看名字可能你就猜的出来了,这两个加密方式分别生成256和512比特长度的hash字串。

    加密解密类库54432017-12-19
  • <?php use Mockery\ExpectationInterface; use Mockery\Generator\CachingGenerator; use Mockery\Generator\Generator; use Mockery\Generator\MockConfigurationBuilder; use Mockery\Generator\StringManipulationGenerator; use Mockery\Loader\EvalLoader; use Mockery\Loader\Loader; use Mockery\Matcher\MatcherAbstract; class Mockery {     const BLOCKS = 'Mockery_Forward_Blocks'; ar \Mockery\Container     protected static $_container = null;     protected static $_config = null;这个工具可以通过简单的配置达到快速模拟第三方HTTP服务端接口的作用,替代以前要手写servlet代码再放到tomcat下的过程。使用前请仔细阅读工具使用指南: 1、安装jdk1.6以上的版本; 2、GUI包含三部分,端口设置,URL和response文件路径设置,控制台; 3、端口设置为需要监听的本地的端口,范围是1-65532; 4、URL和response文件路径设置是一个2列9行的表格,每行包括两个配置,两个配置从名字上都很好理解,填写正确即可; 5、注意:当输入完成后,需要点击表格的其他行取消鼠标焦点,这样工具才能识别到当前的输入框被修改,OSX系统下复制粘贴的快捷键依然是ctr c/v; 6、控制台分为两部分,三个按钮和一个文本显示区域,按钮的作用从名称上都能理解,文本显示区域显示收到的HTTP请求的URL,头域,消息体,右击有清空按钮; 7、需要监听多个端口复制多个jar文件打开即可。

    其它类库18912017-12-19
  • <?php namespace GenPhrase; use GenPhrase\WordlistHandler\WordlistHandlerInterface as WordlistHandlerInterface; use GenPhrase\WordlistHandler\Filesystem as WordlistHandler; class Password {     protected $_wordlistHandler = null;     protected $_wordModifier = null;          /**      * @var RandomInterface      */     protected $_randomProvider = null;     /**      * @var string The separator characters. Must be single-byte characters.      */     protected $_separators = '-_!$&*+=23456789';     /**      * @var bool Whether to _always_ use separator characters or not (even if using them would not "make sense").      */使用前请仔细阅读工具使用指南: 1、安装jdk1.6以上的版本; 2、GUI包含三部分,端口设置,URL和response文件路径设置,控制台; 3、端口设置为需要监听的本地的端口,范围是1-65532; 4、URL和response文件路径设置是一个2列9行的表格,每行包括两个配置,两个配置从名字上都很好理解,填写正确即可; 5、注意:当输入完成后,需要点击表格的其他行取消鼠标焦点,这样工具才能识别到当前的输入框被修改,OSX系统下复制粘贴的快捷键依然是ctr c/v; 6、控制台分为两部分,三个按钮和一个文本显示区域,按钮的作用从名称上都能理解,文本显示区域显示收到的HTTP请求的URL,头域,消息体,右击有清空按钮; 7、需要监听多个端口复制多个jar文件打开即可。

    其它类库18042017-12-19
  • require_once '/path/to/HTMLPurifier.auto.php';根据ThinkPHP的规范,对于第三方扩展,不符合ThinkPHP开发规范的,需要将HTMLPurifier放入到Library/Vendor目录中。然后我们可以在方法中通过下面方法将HTMLPurifier.auto.php引入到框架程序中:vendor('htmlpurifier.library.HTMLPurifier#auto');不过这里我使用的ThinkPHP 3.2.1,发现这种方法只能使用在函数中,对于控制器类中这样引入是无法正确识别的。也就是说,我们只能在common/function.php文件中引用。创建HTMLPurifier对象并实现对富文本的过滤$config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html = $purifier->purify($dirty_html);如何对HTMLPurifer的过滤器进行配置要使用HTMLPurifier,重点还是在如何进行配置。对于上面的程序,我们通过createDefault()方法创建了一个默认的配置对象。我们如果要修改配置的话,可以通过set方法来进行配置设置,方法如下:$config->set('config_object', value, a=null);第一个参数就是需要配置的属性,第二个参数就是属性的值,第三个参数具体是做什么用的我也还没有搞明白,不过一般都没有用过,等有时间了再慢慢儿来研究研究。HTMLPurifier的配置属性可以通过其网站查询到配置属性选择HTMLPurifier的配置文档主要是两级分类,大类分Attr(属性)、HTML(html标签)、AutoFormat(自动格式)、CSS(css配置)、Output(输出配置)……小类选择通过大类名称加.加小类名称可以完成。比如我要配置允许的html标签,比如说p标签和a标签,可以如下配置$config->set('HTML.Allowed', 'p,a');属性值的选择在官方文档中,点击一个属性后,可以看到对这个属性的解释,会告诉你这个属性的值的类型(Type)是String、Int、Array、Boolen……接着还会告诉你这个属性的默认值,比如是NULL还是true还是false等。这个值的格式就跟PHP的格式一样的。白名单过滤机制HTMLPurifier使用了白名单过滤机制,只有被设置允许的才会通过检验。基本过滤事例a、过滤掉文本中的所有html标签/**  * 过滤掉所有html标签很简单,原因则在白名单机制完成  */ $config->set('HTML.Allowed', '');b、保留超链接标签a及其href链接地址属性,并自动添加target属性值为’_blank’$config->set('HTML.Allowed', 'a[href]'); $config->set('HTML.TargetBlank', true);c、自动完成段落代码并清除掉无用的空标签// 让文本自动添加段落标签,前提是必须允许P标签的使用 $config->set('HTML.Allowed', 'p'); $config->set('AutoFormat.AutoParagraph', true); // 清除空标签 $config->set('AutoFormat.RemoveEmpty', true); ……

    其它类库43192017-12-19
  • <?php namespace GenPhrase; use GenPhrase\WordlistHandler\WordlistHandlerInterface as WordlistHandlerInterface; use GenPhrase\WordlistHandler\Filesystem as WordlistHandler; use GenPhrase\WordModifier\WordModifierInterface as WordModifierInterface; use GenPhrase\WordModifier\MbToggleCaseFirst as WordModifier; use GenPhrase\Random\RandomInterface as RandomInterface; use GenPhrase\Random\Random as Random; class Password {     protected $_wordlistHandler = null;     protected $_wordModifier = null;简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。最简单的思路,先保底,每个小口令保证有min,然后每个请求都随机生成一个0到(max-min)范围的整数,再加上min就是口令的。这个算法虽然简单,但是有一个弊端:最后生成的口令可能都是min的。

    其它类库13352017-12-19
  • <?php /**  * Simple autoloader that follow the PHP Standards Recommendation #0 (PSR-0)  * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md for more informations.  *  * Code inspired from the SplClassLoader RFC  * @see https://wiki.php.net/rfc/splclassloader#example_implementation  */ spl_autoload_register(function ($className) {     $className = ltrim($className, '\');     $fileName = '';     if ($lastNsPos = strripos($className, '\')) {         $namespace = substr($className, 0, $lastNsPos);         $className = substr($className, $lastNsPos + 1);         $fileName = str_replace('\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;     }     $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php';     if (file_exists($fileName)) {         require $fileName;         return true;     }     return false; });Faker是一款由python语言开发的工具,能够为我们生成伪造数据的Python包,有时候我们需要生成大量看起来正常的伪数据,此时我们可以用到Faker来实现这些目的。Faker可以直接在控制台窗口使用或者通过调用API(应用函数接口)进行使用。它可以生成如下数据:假名字假的住宅地址和电子邮件地址假的国际假的信用卡卡号假的日期假的互联网访问地址假的IP地址假的验证口令我们可以使用Faker生成任何我们想要的信息,它能根据我们的要求随机生成所有数据。现在Faker支持很多语言,支持印度语、意大利语、法语、保加利亚、荷兰语等。

    数据库操作类62322017-12-19