草庐IT

持久态

全部标签

php - 如何从 PHP 使用 HTTP 1.1 持久连接和流水线?

我正在构建一个RESTAPI(使用JSON作为数据编码)。API调用都将是HTTPPOST,我需要能够处理相当大的数量(每秒可能调用1000次或更多)。服务器(我负责)将使用Java实现,但客户端很可能使用PHP。由于请求率很高,我热衷于利用HTTP1.1中的请求流水线,但我不确定是否可以从PHP执行此操作(即PHP是HTTP客户端,不是服务器)。任何人都可以提供有关如何从PHP执行此操作的任何建议吗? 最佳答案 您可以使用pecl_http的HttpRequestPool[1]类并调用未记录的$pool->enablePipeli

php - 使用 PHPUnit 和半持久数据库进行单元测试

我是单元测试的新手,我正尝试在我正在处理的现有项目中开始使用PHPUnit。我面临的问题是我有很多单元测试需要足够公平的数据库。我已经为单元测试的唯一目的设置了一个SQLite数据库。有时我想为新测试删除并重新创建数据库(我指的是每个单独的类),以防止不必要的数据冲突。但是,如果我在同一个类中有相互依赖的单元测试,有时我不希望这种情况发生;这些可能需要访问在先前测试中保存的数据。我目前正在每个类的setUp()函数中获取一个"new"数据库。我没有预料到的是这个函数(与__construct()一样)会在所述类中的每个测试用例之后运行。有没有一种方法可以让每个测试类都刷新数据库?还是我

php - 是否可以向 Laravel 模型添加非持久属性?

我正在使用Laravel(Lumen)创建一个API,其中的对象包含一个字段,该字段是一个文件的路径。这些路径在数据库中存储为相对路径,但在将它们返回给用户时,我必须将它们转换为绝对url。现在我想知道是否有一种方便的方法可以将非持久字段添加到模型对象中。明明有Mutators但它们会持久保存到数据库中。我也想过创建一个后中间件,它遍历对象树并转换它找到的每个path字段,但这不是一种优雅的方式。这是我需要的最终转换:[{"id":1,"title":"Sometitle","media":[{"id":435,"path":"relative/path/to/some/file.ex

PHP:持久变量值

我必须读取一个文件并进行一些计算,然后将计算结果保存在一个变量中。我只需要这样做一次。在Java+Servlet中,我可以使用servlet容器和例如单例模式来完成此操作。我知道在PHP中我不能这样做。哪种方法更好?在DB上保存计算(或传输数据)? 最佳答案 不,它不会像JavaServlet那样工作。您必须找到解决方法。首先,我假设通常使用$_SESSION、$_COOKIE或$_REQUEST对您来说不切实际,因为您希望按服务器(或应用程序)而不是按“用户session”保存状态。在您的情况下,使用数据库听起来很可行。在常规应用

php - 从服务器到服务器的持久登录信息

我目前在2个Web服务器上工作,一个是Coldfusion,另一个是PHP。现在,Coldfusion服务器是我的主要服务器,用户可以在其中登录以访问受限数据。但是,我也开始使用PHP服务器,并希望让用户透明地访问该服务器上的特定页面-该服务器也需要登录信息。我不希望用户登录两次。有没有办法做到这一点?谢谢更新:在Intranet环境中工作,所以我不能使用任何公共(public)解决方案。更新:我要求这样做的原因是因为我们正在从MSQL/Coldfusion环境(初始服务器)迁移到PHP/ORACLE(新服务器)。所以我也有2个用户表(尽管它们包含大部分相同的信息)。我正试图避免使用我

php - 单元测试持久层 - Symfony

我想在Symfony2中测试持久性。我想知道它是更好的模拟实体并提供给实体管理器还是更好的模拟实体管理器并将实体传递给管理器?我是第一个选项,但实体管理器抛出异常而不是对象不是实体学说。如何在PHPUNIT中测试持久性symfony? 最佳答案 与其编写单元测试,不如为持久层编写集成测试。单元测试中有一条规则“不要mock你不拥有的东西”。你不拥有Doctrine类或接口(interface),你永远无法确定你对你模拟的接口(interface)所做的假设是真实的。即使它们在您编写测试时为真,您也无法确定Doctrine的行为是否随

php - Symfony2 ManytoMany 双向关系 - 如何手动持久化

我正在处理一个包含2个输入字段和一个提交按钮的表单。第一个字段是一个简单的下拉列表(类别),而另一个是标签输入字段(标签),您可以在其中一次输入多个标签。这两个字段仅接受预定义的输入选项。类别选项值在javascript中硬编码:categories=[{"id":1,"categoryname":"standard"},{"id":2,"categoryname":"premium"},{"id":3,"categoryname":"gold"}];tag的选项是从数据库中的tag表中获取的。这是数据库表的屏幕截图:Category和Tag实体与Doctrine的ManytoMany

php - 持久连接被禁用。降级为正常

我收到了这个错误:[21-Jul-201602:14:05America/Chicago]PHPWarning:mysqli::__construct():(42000/1203):Usersalreadyhasmorethan'max_user_connections'activeconnectionsin/home/s/public_html/config.phponline8所以,人们告诉我要使用持久连接,所以我在主机名前添加了p::$hostname="127.0.0.1";$user="xxx";$pass="123";$bd="xxx";$mysqli_link=newmy

javascript - 持久性刷新倒计时

我有一个问题要解决,我不是javascript的高手,基本上当加载我的元素id时,它将在我的代码中开始从2小时分秒开始倒计时,但我有点击刷新的链接该页面正在刷新我的柜台我发现完整的柜台是链接:JavaScriptcountdown,addhours&minutesvarcount=7200;varcounter=setInterval(timer,1000);//1000willrunitevery1secondfunctiontimer(){count=count-1;if(count==-1){clearInterval(counter);return;}varseconds=co

php - 多个域之间的 session 持久性?

有什么方法可以在同一台服务器上为多个域建立共同session,对于我们使用session_cookie的子域,我可以为子域建立共同session。请帮忙!!! 最佳答案 你应该storeyousessiondatainthedatabase,这是通过将保存处理程序“重新路由”到您的数据库保存函数来实现的,如下所示:session_set_save_handler(callback$open,callback$close,callback$read,callback$write,callback$destroy,callback$gc