<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<title>FlatBuffers: Use in PHP</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea" style="height: 110px;">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="commonprojectlogo">
    <img alt="Logo" src="fpl_logo_small.png"/>
  </td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">FlatBuffers
   </div>
   <div style="font-size:12px;">
    An open source project by <a href="https://developers.google.com/games/#Tools">FPL</a>.
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('flatbuffers_guide_use_php.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="PageDoc"><div class="header">
  <div class="headertitle">
<div class="title">Use in PHP </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="md_PHPUsage"></a></p>
<h1><a class="anchor" id="autotoc_md112"></a>
Before you get started</h1>
<p>Before diving into the FlatBuffers usage in PHP, it should be noted that the <a class="el" href="flatbuffers_guide_tutorial.html">Tutorial</a> page has a complete guide to general FlatBuffers usage in all of the supported languages (including PHP). This page is specifically designed to cover the nuances of FlatBuffers usage in PHP.</p>
<p>You should also have read the <a class="el" href="flatbuffers_guide_building.html">Building</a> documentation to build <code>flatc</code> and should be familiar with <a class="el" href="flatbuffers_guide_using_schema_compiler.html">Using the schema compiler</a> and <a class="el" href="flatbuffers_guide_writing_schema.html">Writing a schema</a>.</p>
<h1><a class="anchor" id="autotoc_md113"></a>
FlatBuffers PHP library code location</h1>
<p>The code for FlatBuffers PHP library can be found at <code>flatbuffers/php</code>. You can browse the library code on the <a href="https://github.com/google/flatbuffers/tree/master/php">FlatBuffers GitHub page</a>.</p>
<h1><a class="anchor" id="autotoc_md114"></a>
Testing the FlatBuffers JavaScript library</h1>
<p>The code to test the PHP library can be found at <code>flatbuffers/tests</code>. The test code itself is located in <a href="https://github.com/google/
flatbuffers/blob/master/tests/phpTest.php">phpTest.php</a>.</p>
<p>You can run the test with <code>php phpTest.php</code> from the command line.</p>
<p><em>Note: The PHP test file requires <a href="http://php.net/manual/en/install.php">PHP</a> to be installed.</em></p>
<h1><a class="anchor" id="autotoc_md115"></a>
Using theFlatBuffers PHP library</h1>
<p><em>Note: See <a class="el" href="flatbuffers_guide_tutorial.html">Tutorial</a> for a more in-depth example of how to use FlatBuffers in PHP.</em></p>
<p>FlatBuffers supports both reading and writing FlatBuffers in PHP.</p>
<p>To use FlatBuffers in your own code, first generate PHP classes from your schema with the <code>--php</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
<p>For example, here is how you would read a FlatBuffer binary file in PHP: First, include the library and generated code (using the PSR <code>autoload</code> function). Then you can read a FlatBuffer binary file, which you pass the contents of to the <code>GetRootAsMonster</code> function:</p>
<div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div>
<div class="line"><span class="comment">// Here is an example:</span></div>
<div class="line"><span class="keyword">function</span> __autoload($class_name) {</div>
<div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div>
<div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div>
<div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div>
<div class="line"> </div>
<div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div>
<div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div>
<div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;tests&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Example&quot;</span>)));</div>
<div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div>
<div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div>
<div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div>
<div class="line">      require($file);</div>
<div class="line">      <span class="keywordflow">break</span>;</div>
<div class="line">  }</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Read the contents of the FlatBuffer binary file.</span></div>
<div class="line">$filename = <span class="stringliteral">&quot;monster.dat&quot;</span>;</div>
<div class="line">$handle = fopen($filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
<div class="line">$contents = $fread($handle, filesize($filename));</div>
<div class="line">fclose($handle);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Pass the contents to `GetRootAsMonster`.</span></div>
<div class="line">$monster = \MyGame\Example\Monster::GetRootAsMonster($contents);</div>
</div><!-- fragment --><p>Now you can access values like this:</p>
<div class="fragment"><div class="line">$hp = $monster-&gt;GetHp();</div>
<div class="line">$pos = $monster-&gt;GetPos();</div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md116"></a>
Text Parsing</h1>
<p>There currently is no support for parsing text (Schema's and JSON) directly from PHP. </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- Google Analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-49880327-7', 'auto');
  ga('send', 'pageview');
</script>
</body>
</html>
