mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add support for Thrift-generated PHP code. (#3329)
This commit is contained in:
committed by
Brandon Black
parent
1d2ec4dbc3
commit
d46a529b6a
@@ -275,16 +275,14 @@ module Linguist
|
|||||||
return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!")
|
return lines[0].include?("Generated by the protocol buffer compiler. DO NOT EDIT!")
|
||||||
end
|
end
|
||||||
|
|
||||||
APACHE_THRIFT_EXTENSIONS = ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp']
|
APACHE_THRIFT_EXTENSIONS = ['.rb', '.py', '.go', '.js', '.m', '.java', '.h', '.cc', '.cpp', '.php']
|
||||||
|
|
||||||
# Internal: Is the blob generated by Apache Thrift compiler?
|
# Internal: Is the blob generated by Apache Thrift compiler?
|
||||||
#
|
#
|
||||||
# Returns true or false
|
# Returns true or false
|
||||||
def generated_apache_thrift?
|
def generated_apache_thrift?
|
||||||
return false unless APACHE_THRIFT_EXTENSIONS.include?(extname)
|
return false unless APACHE_THRIFT_EXTENSIONS.include?(extname)
|
||||||
return false unless lines.count > 1
|
return lines.first(6).any? { |l| l.include?("Autogenerated by Thrift Compiler") }
|
||||||
|
|
||||||
return lines[0].include?("Autogenerated by Thrift Compiler") || lines[1].include?("Autogenerated by Thrift Compiler")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Internal: Is the blob a C/C++ header generated by the Java JNI tool javah?
|
# Internal: Is the blob a C/C++ header generated by the Java JNI tool javah?
|
||||||
|
|||||||
93
samples/PHP/ThriftGenerated.php
Normal file
93
samples/PHP/ThriftGenerated.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
namespace github\com;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift Compiler (0.9.3)
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
use Thrift\Base\TBase;
|
||||||
|
use Thrift\Type\TType;
|
||||||
|
use Thrift\Type\TMessageType;
|
||||||
|
use Thrift\Exception\TException;
|
||||||
|
use Thrift\Exception\TProtocolException;
|
||||||
|
use Thrift\Protocol\TProtocol;
|
||||||
|
use Thrift\Protocol\TBinaryProtocolAccelerated;
|
||||||
|
use Thrift\Exception\TApplicationException;
|
||||||
|
|
||||||
|
|
||||||
|
class PullRequest {
|
||||||
|
static $_TSPEC;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $title = null;
|
||||||
|
|
||||||
|
public function __construct($vals=null) {
|
||||||
|
if (!isset(self::$_TSPEC)) {
|
||||||
|
self::$_TSPEC = array(
|
||||||
|
1 => array(
|
||||||
|
'var' => 'title',
|
||||||
|
'type' => TType::STRING,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (is_array($vals)) {
|
||||||
|
if (isset($vals['title'])) {
|
||||||
|
$this->title = $vals['title'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName() {
|
||||||
|
return 'PullRequest';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function read($input)
|
||||||
|
{
|
||||||
|
$xfer = 0;
|
||||||
|
$fname = null;
|
||||||
|
$ftype = 0;
|
||||||
|
$fid = 0;
|
||||||
|
$xfer += $input->readStructBegin($fname);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
$xfer += $input->readFieldBegin($fname, $ftype, $fid);
|
||||||
|
if ($ftype == TType::STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch ($fid)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
if ($ftype == TType::STRING) {
|
||||||
|
$xfer += $input->readString($this->title);
|
||||||
|
} else {
|
||||||
|
$xfer += $input->skip($ftype);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$xfer += $input->skip($ftype);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$xfer += $input->readFieldEnd();
|
||||||
|
}
|
||||||
|
$xfer += $input->readStructEnd();
|
||||||
|
return $xfer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function write($output) {
|
||||||
|
$xfer = 0;
|
||||||
|
$xfer += $output->writeStructBegin('PullRequest');
|
||||||
|
if ($this->title !== null) {
|
||||||
|
$xfer += $output->writeFieldBegin('title', TType::STRING, 1);
|
||||||
|
$xfer += $output->writeString($this->title);
|
||||||
|
$xfer += $output->writeFieldEnd();
|
||||||
|
}
|
||||||
|
$xfer += $output->writeFieldStop();
|
||||||
|
$xfer += $output->writeStructEnd();
|
||||||
|
return $xfer;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -202,6 +202,7 @@ class TestBlob < Minitest::Test
|
|||||||
assert sample_blob_memory("JavaScript/gen-js-linguist-thrift.js").generated?
|
assert sample_blob_memory("JavaScript/gen-js-linguist-thrift.js").generated?
|
||||||
assert sample_blob_memory("Ruby/gen-rb-linguist-thrift.rb").generated?
|
assert sample_blob_memory("Ruby/gen-rb-linguist-thrift.rb").generated?
|
||||||
assert sample_blob_memory("Objective-C/gen-cocoa-linguist-thrift.m").generated?
|
assert sample_blob_memory("Objective-C/gen-cocoa-linguist-thrift.m").generated?
|
||||||
|
assert sample_blob_memory("PHP/ThriftGenerated.php").generated?
|
||||||
|
|
||||||
# Generated JNI
|
# Generated JNI
|
||||||
assert sample_blob_memory("C/jni_layer.h").generated?
|
assert sample_blob_memory("C/jni_layer.h").generated?
|
||||||
|
|||||||
Reference in New Issue
Block a user