<p dir="auto">Currently, the upload file handler in request bails on AppEngine because of the <code class="notranslate">ini_get('file_uploads')</code> check in the handler:</p>
<p dir="auto"><a href="https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/File/UploadedFile.php#L94">https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/File/UploadedFile.php#L94</a></p>
<p dir="auto">Since GAE is patched to side-channel insert this data, it bypasses PHP's built in file uploading functionality (and intentionally disables it). However, the code as it exists currently make a (perhaps superfluous) check to <code class="notranslate">ini_get()</code>...</p>
<p dir="auto">I am suggesting that the entire if statement is removed, as the only case it would actually prevent from happening is if a user fakes the <code class="notranslate">$_FILE</code> array on a server that has uploads disabled...</p>
<p dir="auto">I can verify that file uploads work correctly on GAE if you remove this line.</p>
<p dir="auto">I can raise a PR for the 3 line change, but I figured I'd start off with a discussion first...</p>
<p dir="auto">I think I've found a bug with YAML reference parsing. Referencing multiple times results in grabbing data below the referenced section. I'm using the Symfony YAML component from version 2.4.4 with PHP 5.4.23 on Ubuntu 12.04.</p>
<p dir="auto">Given <code class="notranslate">myfile.yaml</code>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="section: &amp;section1
    x: y
different:
    a: b
section: &amp;section2
    &lt;&lt; : *section1
section:
    &lt;&lt; : *section2"><pre class="notranslate"><code class="notranslate">section: &amp;section1
    x: y
different:
    a: b
section: &amp;section2
    &lt;&lt; : *section1
section:
    &lt;&lt; : *section2
</code></pre></div>
<p dir="auto">Code:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="print_r(Yaml::parse('myfile.yaml'));"><pre class="notranslate"><code class="notranslate">print_r(Yaml::parse('myfile.yaml'));
</code></pre></div>
<p dir="auto">Expected output:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[section] =&gt; Array
    (
        [x] =&gt; y
    )

[different] =&gt; Array
    (
        [a] =&gt; b
    )
"><pre class="notranslate"><code class="notranslate">[section] =&gt; Array
    (
        [x] =&gt; y
    )

[different] =&gt; Array
    (
        [a] =&gt; b
    )

</code></pre></div>
<p dir="auto">Actual output:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[section] =&gt; Array
    (
        [a] =&gt; b
    )

[different] =&gt; Array
    (
        [a] =&gt; b
    )"><pre class="notranslate"><code class="notranslate">[section] =&gt; Array
    (
        [a] =&gt; b
    )

[different] =&gt; Array
    (
        [a] =&gt; b
    )
</code></pre></div>
<p dir="auto">Note how <code class="notranslate">[x] =&gt; y</code> has been replaced with <code class="notranslate">[a] =&gt; b</code>.</p>
<p dir="auto">Note that you get the same actual output even if you remove the line <code class="notranslate">x: y</code>.</p>