Add CDataProviderIterator to allow iterating over large data sets
Update changelog for #545
#545 fix whitespace
#545 update changelog
#545 make protected members private
#545 dont use getters or setters if we can avoid it
#545 dont use getters or setters if we can avoid it
#545 reformat code according to Yii style
#545 more tiny code style changes
* hash() encapsulates path hashing.
* mkdir is now recursive.
* mkdir sets permission instead of chmod.
* indent fixed.
* control flow logic consolidation.
* BC for hash().
* docblock
* copyDirectory creates dstDir recursively.
* recursive dst creation at copyDirectory.
* dir access mode is set by chmod, again (note: if dst is created recursively, then only last dir will have newDirMode access).
* CSC
- umask removed.
- @ silence operator removed.
* CHANGELOG updated
Update framework/web/services/CWsdlGenerator.php

Fixes the following error:

Warning: DOMDocument::loadXML() [domdocument.loadxml]: xmlns:tns: 'some\namespaced\ClassName' is not a valid URI in Entity, line: 4 in \yii\framework\web\services\CWsdlGenerator.php on line 221

No unit test today, just a DumbErrorTest class:

<?php
class DumbErrorTest
{

    public $serviceName;
    public $namespace;
    
    public function __construct()
    {

        $this->namespace = 'some\namespaced\ClassName';
        $this->serviceName = $this->namespace;
    
        $encoding = 'UTF-8';
        $serviceUrl = 'dummy';
        $this->buildDOM($serviceUrl,$encoding);
    }

    private function buildDOM($serviceUrl,$encoding)
    {
        $xml="<?xml version=\"1.0\" encoding=\"$encoding\"?>
<definitions name=\"{$this->serviceName}\" targetNamespace=\"{$this->namespace}\"
     xmlns=\"http://schemas.xmlsoap.org/wsdl/\"
     xmlns:tns=\"{$this->namespace}\"
     xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\"
     xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
     xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\"
     xmlns:soap-enc=\"http://schemas.xmlsoap.org/soap/encoding/\"></definitions>";

        $dom=new DOMDocument();
        $dom->loadXml($xml);
        
        //more code...
    }
}

new DumbErrorTest();