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
						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