Git 预接收钩子启动 PHP CodeSniffer [关闭]

2023-11-21

我想使用 PHP CodeSniffer 检查提交到我的远程 git 存储库的代码,如果代码标准存在任何问题,则拒绝它。有没有人有如何在 git 远程存储库上使用它的示例,或者示例如何将它与预接收挂钩一起使用?谢谢。


也许这为您指明了正确的方向:(原文来自:http://www.squatlabs.de/versionierung/arbeiten-git-hooks在德国)

#!/usr/bin/php
<?php

$output = array();
$rc     = 0;
exec('git rev-parse --verify HEAD 2> /dev/null', $output, $rc);
if ($rc == 0)  $against = 'HEAD';
else           $against = '4b825dc642cb6eb9a060e54bf8d69288fbee4904';

exec('git diff-index --cached --name-only '. $against, $output);

$needle            = '/(\.php|\.module|\.install)$/';
$exit_status = 0;

foreach ($output as $file) {
        if (!preg_match($needle, $file)) {
                // only check php files
                continue;
        }

        $lint_output = array();
        $rc              = 0;
        exec('php -l '. escapeshellarg($file), $lint_output, $rc);
        if ($rc == 0) {
                continue;
        }
        # echo implode("\n", $lint_output), "\n";
        $exit_status = 1;
}

exit($exit_status);

您必须编辑 exec 行 exec('php -l... 以指向您的codesniffer 安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 预接收钩子启动 PHP CodeSniffer [关闭] 的相关文章

  • 在 git 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • RuntimeException - 会话存储未根据请求设置 - Laravel Socialite - Facebook

    我在用着Laravel 5 7 and Laravel Socialite 3 1 我想使用登录Facebook我刚刚为此项目配置了应用程序 这些是我为此配置的主要文件 env FACEBOOK CLIENT ID FACEBOOK CLI
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04
  • 确定 PHP 到目前为止执行了多长时间

    我需要确定 PHP 函数到目前为止已经运行了多长时间 有哪些选项可以确定某些 PHP 代码的运行时间 我正在使用 zend 框架 Call microtime true 函数以毫秒分辨率获取当前时间
  • 计算帖子中使用 WordPress 短代码的次数

    我有以下 WordPress 短代码功能 function wp shortcode static i 1 return i i return return add shortcode shortcode wp shortcode 这很好用
  • 在运行之前可以检查 imagecreatefromjpeg 是否会导致内存耗尽致命错误吗?

    我已经对此进行了一些搜索 并且我知道不可能从内存耗尽的致命错误中恢复 我有一个运行 imagecreatefromjpeg 的脚本 我尝试捕获异常 我尝试使用 运行该函数 然后检查返回值是否为 null 或 false 我尝试使用 die
  • 在 git 中记录前 10 个

    两个问题 如何从头到尾显示 git 中的前 10 个提交 无分行 如何指定提交索引并记录它 显示第二个或第三个 我知道 git 使用父级来链接提交 很容易从头到尾记录提交 喜欢 git log HEAD 10 但我需要从头到尾查询 可以吗
  • Monolog:通过邮件发送错误日志会导致每个发送的错误都会收到一封额外的邮件

    对于通过邮件发送的每个错误日志 我们都会收到另一封额外的电子邮件 其中包含 2 行 smtp 调试日志消息 新创建的 symfony 演示 symfony new demo 配置独白以通过邮件发送错误消息 如docs https symfo
  • websockets 如何处理同一浏览器的两个选项卡

    I have 1 个 PHP 服务器 提供 http 请求 和 1 node js 发布更新的数据消息 每个连接都带有 websocket php 服务器设置其 cookie 在一个浏览器中 此 cookie 可在所有选项卡中使用 当浏览器
  • 如何下载临时文件

    我正在尝试创建一个简短的 PHP 脚本 该脚本采用 JSON 字符串 将其转换为 CSV 格式 使用fputcsv 并使该 CSV 可作为下载的 csv 文件使用 我的想法是使用tmpfile 不用担心 cronjobs 或磁盘空间不足 但
  • 验证 LDAPS 连接的自签名证书

    我想从 Linux Linux 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 客户端到 Windows 2012 服务器建立安全的 ldap 连接 ldaps 以更改活动中的用户密
  • PHP 使用主键和辅助键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 如何按主键和辅助键对多维数组进行排序 例如 假设有以下数组 result array result 0 prio 1 result 0 date 2010 02 28 result 0 post February
  • 如何使用 PHP 将字符串按大写字母分解?

    我有一个字符串 CamelCaseString 我想对大写字母进行explode split 或一些更好的方法来将该字符串分解为单个单词 最简单的方法是什么 解决方案更新 此链接指向一个略有不同的问题 但我认为答案通常比本页当前问题的答案更
  • 如何将一个文件存储库上传到 Gist,并保留历史记录?

    我的计算机上有一个包含单个文件的 Git 存储库coins py 我如何才能将其作为 Github 上的要点来保存历史 这其实很简单 您可以将现有历史记录移动到 Gist 存储库中 就像将其移动到任何其他存储库中一样 创建要点 只需输入一些
  • Laravel 4.2 Composer 安装错误:“无法扫描类”

    我想通过 Composer 在新的 Laravel 4 2 安装上安装一些软件包 但是 我遇到了例外 这是我的作曲家文件 name laravel laravel description The Laravel Framework keyw
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • 如何缩短 PHP if 语句?

    我有一个 if 语句 我需要将单个字符串与许多不同的选项进行比较 我在下面发布的代码非常清楚地表明了我的意思 我知道有两种方法可以做到这一点 但另一种甚至更长 那么 是否有任何函数可以以更短的方式实现类似的功能 我的要求可能看起来很愚蠢 但

随机推荐

  • 如何使用 python 关闭网络浏览器

    我已经使用打开了一个网络浏览器窗口webbrowser open url 在 python 中 现在我想关闭使用 python 打开的网络浏览器 可以这样做吗 没有webbrowser close 您可以使用以下代码关闭任务 在Window
  • ShowDialog 使应用程序窗口从 Windows 的 Alt-Tab 列表中消失?

    我是 WPF 新手 我正在尝试从主窗口内打开模式对话框 public partial class MainWindow Window protected void OpenCommandExecuted object target Exec
  • 使用 jQuery 获取 div 的背景图像。是否有内置方法可以去掉 url() 部分?

    我正在使用此代码来获取背景图像div var bgImage content css backgroundImage 这是回归url 28http example com images layout content trans png 29
  • Java 中的非阻塞套接字写入与阻塞套接字写入

    为什么有人更喜欢阻塞写入而不是非阻塞写入 我的理解是 如果您想确保另一方在 write 方法返回后收到 TCP 数据包 则只需要阻止 write 但我什至不确定这是否可能 你必须冲洗并且冲洗必须冲洗底层操作系统写套接字缓冲区 那么非阻塞套接
  • 在 Android 后台使用相机

    我正在尝试将照片从相机中投入使用 Override public void onCreate super onCreate android os Debug waitForDebugger myCamera Camera open Surf
  • 如何获取多窗口 SceneDelegate Xcode 11 的当前 keywindow 等效项?

    我正在将适用于 iPadOS 的 iOS13 应用程序转换为 SceneDelegate 多窗口 如何从当前SceneDelegate获取当前UIWindow 我知道 a 可以使用访问当前场景UIView window or UIViewC
  • 为什么 os.system('cls') 不清除最近的输出?

    我一直在使用system cls 在使用 Dev C 之前使用 C 语言 现在正在学习Python 使用Pycharm 2020 2 3 我尝试使用os system cls 这是我的程序 import os print clear scr
  • 渲染 Ruby on Rails 后保留参数

    我有一个属于用户的项目 在我的用户视图中 我有一个添加新项目的链接 其中包含我想要将项目添加到的用户的参数 Url projects new id 62 向用户添加项目是可行的 问题是当添加新项目时验证失败并且我进行渲染时 def crea
  • 从 JSTL 读取属性文件

    我正在尝试使用 taglib 读取 JSTL 形式的 属性文件 但我无法访问它 我已在 web xml 中正确找到了 tld 文件 我确信这一点
  • 是否有相当于 Facebook Access Token linter/debugger 的 API?

    是否有一个与以下功能等效的图形 APIFacebook 访问令牌 linter 调试器我可以通过编程方式调用吗 短绒很好 它告诉您有关您拥有的令牌的各种很酷的信息 例如授予的权限 我可以通过me permissions 问题和到期日期 应用
  • 如何根据正在执行的目标激活配置文件

    当我从命令行执行某些目标时 我想 自动 激活配置文件 例如 我现在在做什么 mvn appengine devserver Pdevelopment mvn appengine update Pproduction 基本上我想在运行 dev
  • 访问 JSON 元素

    我从 URL 获取天气信息 weather urllib2 urlopen url wjson weather read 我得到的是 data current condition cloudcover 0 humidity 54 obser
  • 如何使用现有自定义主题隐藏 XML 中活动的标题栏

    我想隐藏某些活动的标题栏 问题是我对所有活动应用了一种样式 因此我不能简单地将主题设置为 android style Theme NoTitleBar 使用无标题栏主题作为我的样式的父项将从我的所有活动中删除标题栏 我可以在某处设置无标题样
  • C++ STL 线程函子的正确使用

    我在理解 C STL 中函数对象作为线程例程的正确用法时遇到一些困难 根据我的理解 函子的好处之一是对象实例可以维护状态 有时我希望一个或多个线程运行一些例程并计算一些结果 然后 在加入线程后 我从对象中查询这些结果 我正在尝试对 C ST
  • python中的十六进制字符串变量到十六进制值的转换

    我有一个名为 hex string 的变量 该值可能是 01234567 现在我想从此变量获取一个十六进制值 即 0x01234567 而不是字符串类型 该变量的值可能会改变 所以我需要一个通用的转换方法 我认为您可能混淆了数字及其表示形式
  • IdentityServer4 IdentityServer3.AccessTokenValidation

    祝大家新年快乐 我配置了 IdentityServer4 并且可以成功进行 ASP net Core Web api 调用 但对于 ASP NET Framework 4 5 2 Web api 我收到来自 NET Framework We
  • 检测被点击的字符。 UITextView characterRangeAtPoint 总是返回 nil

    我正在尝试确定其中的哪个特定角色UITextView已被窃听 我尝试使用characterRangeAtPoint 方法 但它总是返回零 无论在哪里UITextView我点击 我什至编写并运行了以下代码 for int x 0 x lt 1
  • 调用未定义函数convert_to_screen()

    我正在开发一个插件 我必须扩展 WP List Table 类 我已经在我的插件文件中扩展了该类 我不知道这是否是正确的方法 并包含 WP List Table 如下所示 if class exists WP List Table requ
  • 在heroku文件系统中写入文件并使用网络应用程序读取它

    我的应用程序中有一个工作进程每小时运行一个脚本 该脚本将数据写入文件系统 Web 应用程序使用该文件系统来更新其内容 我注意到 尽管工作人员成功运行了该进程 但数据并未更新 这是否与heroku的文件系统是只读的这一事实有关 如果是这样 我
  • Git 预接收钩子启动 PHP CodeSniffer [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想使用 PHP CodeSniffer 检查提交到我的远程 git 存储库的代码 如果代码标准存在任何问题 则拒绝它 有没有人有如何在 git 远程存储库上使用它的示例 或者示例如