Robots files generation - simplifying foreach code
If number of lines is your primary concern, then really all we can do with this is merge your array creation lines, and use array_merge() to create temporary arrays which you can loop around, like so:

public function generateRobotsFile($rbfile, $smfile)
{
    $tab = array('SemBot' =&gt; array('Googlebot', "bingbot\nCrawl-delay: 5", 'MSNBot'),
                 'Lang'   =&gt; array('eb'),
                 'Files'  =&gt; array('address.php', 'cart.php'),
                 'Folder' =&gt; array('classes', 'docs', 'themes'));
    fwrite($writeFd, "\nUser-agent: *\n");
    foreach(array_merge($tab['Lang'], $tab['Folder']) as $disallow)
    {
        fwrite($writeFd, 'Disallow: ' . __PS_BASE_URI__ . $disallow . "\n");
    }
    foreach($tab['SemBot'] as $SemBot)
    {
        fwrite($writeFd, "User-agent: " . $SemBot . "\n");
        foreach(array_merge($tab['Files'], $tab['Folder']) as $disallow)
        {
            fwrite($writeFd, 'Disallow: ' . __PS_BASE_URI__ . $disallow . "\n");
        }
    }
}