28.12.2012
Der APC-Cache einer Seite sollte nach größeren Änderungen (zum Beispiel einem Magento Update, einer Design Änderung oder ähnlichem) umbedingt geleert werden. Das kann entweder direkt über die Bash erfolgen oder über ein kurzes PHP-Skript. Das Skript checkt zuerst ob die Funktion apc_clear_cache verfügbar ist. Falls die Funktion nicht verfügbar ist, wird ein Error ausgegeben. <? if (function_exists('apc_clear_cache')) { if (apc_clear_cache() && apc_clear_cache('user')) { echo 'Cache clear.'; } else { print 'Error'; } } ?> Das Skript sollte man entweder noch über einen GET-Parameter vor fremden Aufrufen schützen oder einen kryptischen Dateinamen verwenden. Am besten ist es allerdings, dass man die Datei erst gar nicht in einem öffentlich aufrufbarem Verzeichnis...
13.12.2012
Im Magento Backend gibt es die Möglichkeit für eigene Module auch einen Grid hinzuzufügen, welcher sich perfekt in das System eingliedert. Falls bei dem Grid dann allerdings die Paginierung nicht funktioniert, liest es oft an dem gleichen Problem: Die Collection wird in der setCollection Methode bereits via load() geladen. So sollte es aussehen: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*'); $this->setCollection($collection); return parent::_prepareCollection(); } Fehlerhaft: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*')->load(); $this->setCollection($collection); return parent::_prepareCollection(); }...
05.12.2012
Bei jedem SVN-Checkout wird in jedem, von SVN erfassten Ordner, ein .svn Ordner angelegt. Das ist praktisch, solange es sich um eine Entwicklungsumgebung handelt. Falls die Dateien allerdings weitergegeben werden sollen, sind die .svn Ordner meistens eher störend. Im Browser selbst sieht man die .svn Ordner meistens nicht, da diese versteckte Ordner sind. Falls eine weitere SVN Synchronisierung der Dateien nicht mehr erforderlich ist, kann man mit folgendem Befehl die kompletten .svn Ordner und Unterordner des aktuellen Verzeichnisses löschen lassen: find . -type d -name .svn -exec rm -Rf {} \; Zur Erklärung find . sucht rekursiv nach allen Ordnern und Dateien aus dem Ordner des Aufrufs absteigend. Mithilfe des Parameters -type d werden von find nur Ordner zurückgeliefert. Durch die Übergabe des Parameters -name .svn filtert find auch alle Ordner, welche nicht den Namen .svn besitzen raus. Hier könnte man stattdessen auch *jpg eingeben, um alle Bilder rekursiv zu löschen (Achtung: Dann muss der Type Filter natürlich -type f lauten). Zu guter Letzt wird der -exec Parameter mit dem Löschbefehl...