+<?php
+/***************************************************************************
+ * Copyright (C) 2003-2010 Polytechnique.org *
+ * http://opensource.polytechnique.org/ *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., *
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
+ ***************************************************************************/
+
+// {{{ interface PlExportable
+/** PlExportable intends to enable a robust exportation of objects.
+ * By explicitly implementing the exportation process, PlExportable classes are
+ * able to be rebuilt from their exportation, even if the class has been modified
+ * inbetween, a case that classic php serialization badly handle.
+ */
+interface PlExportable
+{
+ /** Returns an associative array containing the neccessary
+ * datas to rebuild the instance. The result can then be serialized,
+ * for example thank the json_encode() function.
+ */
+ public function export();
+}
+// }}}
+
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+?>