20. 10. 2011
15. 10. 2011

Jak okopírovat adresář s celým obsahem v PHP

Složitých a ošklivých funkcí pro kopírování adresářů a podadresářů vč. jejich obsahu jsem viděl několik. Tahle celkem běžná úloha jde vyřešit i jednoduše pomocí PHP iterátoru:

$source = "/foo/bar/dir";
$dest= "/dest/dir";

foreach (
 $iterator = new RecursiveIteratorIterator(
  new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
  RecursiveIteratorIterator::SELF_FIRST) as $item
) {
  if ($item->isDir()) {
    mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
  } else {
    copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
  }
}
#php, #recursive-copy-of-directory, #recursive-copy-of-folder
3. 10. 2011

Kompilovaní Less CSS pomocí Apache ANT

Less CSS patří mezi mé nové oblíbené „novoty“ – jedná se o nadstavbu CSS, která přináší do CSS funkce, konstanty nebo vnořené prvky. Less CSS je možné kompilovat on the fly pomocí javascriptu přímo v prohlížeči, ale mnohem lepší je soubory CSS připravit dopředu.

Pro automatické kompilování Less CSS souborů jsem využil Apache ANT a maven-less-pluginu. Target less.compile navíc kontroluje změnu souboru style.less. Kompilace se tak provede jen pokud se originální soubor less změnil:

<target name="checkLessChanges">
  <uptodate property="lessChange" targetfile="www/css/style.css">
    <srcfiles dir="www/css" includes="style.less"/>
  </uptodate>
</target>

<target name="less.compile" depends="checkLessChanges" unless="lessChange">
  <java jar="build/tools/less-utils.jar" fork="true" failonerror="true" maxmemory="128m">
    <arg line=" www/css/" />
  </java>
</target>

Pokud vám nevyhovuje java less kompilátor můžete využít například PHP Compiler.

#ant-less-css-kompilace, #less-css-kompilace
2. 10. 2011
25. 9. 2011