草庐IT

PHP 是否有等同于 Composer 的 npm 链接?

当我开发JavaScript模块时,我可以使用npmlink在使用该模块作为依赖项的本地项目中安装我的本地开发版本。这是一个很棒的工作流程。它没有就地开发,我认为这不如TDD好,但我认为它是进行集成测试和手动QA的一种更简单的方法。在Composer中,如果可能的话,我可以强制使用git安装一个包,这样我就可以就地开发。不错,但不是很好。问题的简短版本:我可以告诉composer暂时从本地文件系统中的gitrepo/文件集安装依赖项并控制来自composerCLI的链接吗? 最佳答案 你可以使用pathrepo在你的composer

php - 在 Windows 中轻松使用 PHP doctrine CLI

在Windows中,要从任何目录使用doctrineCLI,我需要使用类似的东西phpD:\full\path\to\doctrine\bin\doctrine.php--variableshere无论如何我可以缩短它,使其变成类似的东西phpdoctrine.php--variableshere甚至doctrine--variableshere 最佳答案 试试doskeydoctrine=phpD:\full\path\to\doctrine\bin\doctrine.php$*那么你应该可以doctrine--variables

php - 从 CLI 运行时抑制 PHP 错误的 HTML 标记

这个问题在这里已经有了答案:HowcanItellPHPtodumpexceptionsasrawtextinsteadofHTML?(3个答案)关闭8年前。当我在CLI上运行php-lsomeFile时,输出用HTML标记标记:$php-lsomeFile.phpParseerror:syntaxerror,unexpectedT_ECHOin/home/someUser/public_html/someFile.phponline42ErrorsparsingsomeFile.php$如何禁止这些HTML标签?我实际上正在使用自定义php.ini进行解析(示例中未显示以简化),因此

php - 为什么带有 PCRE_UTF8 的 PHP preg_match_all 在 CLI 上和通过 Apache/mod_php 给出不同的结果?

以下代码在通过CLI和Apache/mod_php运行时产生不同的结果:$pattern."u",//Addu(PCRE_UTF8)modifier"Non-unicode"=>$pattern);echo"Text:\n'$text'\n";foreach($regexpsas$type=>$regexp){$matches=array();$total=preg_match_all($regexp,$text,$matches);echo"\n\n";echo"$typeregex:\n'$regexp'\n\n";echo"Total$typematches:";var_dump

php - 如何在 apache 和 php_cli 之间共享 APC 缓存?

我在一些博客中读到apache和php_cli不共享APC数据,因为它们在不同的进程中运行...但是,我需要使用缓存在Apache(浏览器中的用户)和cron进程(php_cli)中的相同数据。怎么做?我已经尝试从php_cli访问一些key,但它确实无法获取。一些想法? 最佳答案 无法使用APC的数据缓存。数据位于仅在Apache内部可用的共享内存中。唯一的选择是使用某种外部存储。根据您的具体需求,这可以像文本文件一样简单,也可以像关系数据库、NoSQL数据库或其他键值存储(如memcached)一样复杂。

从浏览器而非 CLI 调用时 PHP exec 失败

我有一个简单的PHP脚本:exec('gitpulloriginmaster',$shell_output,$output);print_r($shell_output);print_r($output)当我通过CLIphpgit.php调用它时,它工作正常。我得到了预期的输出,返回值为0。当我通过网络浏览器访问该页面时,它失败了,返回值为1。我已将文件权限设置为777,并确保php.ini不会阻止exec()函数。 最佳答案 CLI使用当前登录用户(您)的凭据运行,它很可能与Web服务器进程使用的不同。执行exec('whoami

php - 通过 CLI 运行 PHP 时的 URL 参数

有什么方法可以将参数(如URL中的查询字符串或URL参数)传递给通过CLI运行的PHP文件?对于一些需要从参数输入的PHPcron作业,我需要这个。例如:$php/home/abc/www/myphp.php?param1=abc 最佳答案 每个命令行界面都有两个特殊变量argc和argv。argv-传递给脚本的参数数组。argc-传递给脚本的命令行参数的数量(如果在命令行上运行)。制作脚本cli.php并用参数调用它:$phpcli.phpargument1=1你应该得到这样的输出:Array([0]=>cli.php[1]=>a

PHP CLI 进程在退出时永远挂起

我有一个在命令行上运行的PHP脚本,当脚本应该退出时,它却永远挂起。它发生在Windows和Linux上,因此它与操作系统无关。我已经尝试使用XDebug调试代码,进入最后的exit语句(也尝试过die但没有成功)。在一些对象上运行了几个析构函数之后,没有什么可以单步执行的了,这个过程只会永远等待。它什么都不做,不消耗任何资源。让进程退出的唯一方法是杀死它,例如Ctrl+C在我的所有脚本中都不会发生这种情况,但我有一个可以重现的案例。我不确定它是在我的代码、库代码(主要是Symfony、Doctrince等)中还是在PHP本身中。我已经使用strace运行脚本,输出的结尾附在下面。我不

php - 将 PHP curl_setopt() 转换为 Python 请求和 CLI curl

我正在尝试将以下PHPcurl_setopt()转换为PythonRequests中的等效项以及CLIcurl。对于Python,如果在Requests中不可能,我会使用pycurl.curl_setopt($process,CURLOPT_RETURNTRANSFER,true);curl_setopt($process,CURLOPT_SSL_VERIFYPEER,false);这是有效的PHPcurl代码:$params=array('username'=>$username,'password'=>$password);$params_string=json_encode($p

php - 在新的 Laravel 5.4 上使用“npm run dev”命令时出错

我已经为此苦苦挣扎了5个小时。这是我尝试在新安装的Laravel上运行“npmrundev”时遇到的错误>@dev/var/www/html/capsule>cross-envNODE_ENV=developmentnode_modules/webpack/bin/webpack.js--progress--hide-modules--config=node_modules/laravel-mix/setup/webpack.config.jsevents.js:160thrower;//Unhandled'error'event^Error:spawnnode_modules/web