function logicToRaw($logic_value)
 {
     return PropertiesUtils::saveToString($logic_value, false);
 }
Пример #2
0
 static function compress($target_file, $root_dir, $properties = array())
 {
     $tmp_file = File::newTempFile();
     $writer = $tmp_file->openWriter();
     $binarydata = pack("a3", self::FF_ARCHIVE_HEADER);
     $writer->write($binarydata);
     $binarydata = pack("v3", self::CURRENT_MAJOR, self::CURRENT_MINOR, self::CURRENT_REV);
     $writer->write($binarydata);
     //properties
     if (count($properties) == 0) {
         $properties_as_string = "";
     } else {
         $properties_as_string = PropertiesUtils::saveToString($properties, false);
     }
     $binarydata = pack("v", strlen($properties_as_string));
     $writer->write($binarydata);
     $binarydata = pack("a*", $properties_as_string);
     $writer->write($binarydata);
     //end properties
     $metadata_pos = $writer->pos();
     //num_entries
     $binarydata = pack("v", 0);
     $writer->write($binarydata);
     $total_entries = self::__recursive_compress_dir($writer, $root_dir, $root_dir);
     $writer->seek($metadata_pos);
     $binarydata = pack("v", $total_entries);
     $writer->write($binarydata);
     $writer->close();
     $final_dir = $target_file->getDirectory();
     $final_dir->touch();
     $final_name = $target_file->getFilename();
     $tmp_file->move_to($final_dir, $final_name);
 }
Пример #3
0
 public function save($do)
 {
     if ($do == null || !$do instanceof AbstractDO) {
         throw new InvalidParameterException("L'oggetto non è un DO valido.");
     }
     $pks = $this->__getPrimaryKeyFields();
     $all_fields = $this->__getAllFields();
     if ($do->__isNew()) {
         $xx = DB::newInsert($this->__getMyTable());
         $insert = true;
     } else {
         if (!$do->__isChanged()) {
             return;
         }
         $xx = DB::newUpdate($this->__getMyTable());
         foreach ($pks as $field) {
             //imposto i primary key fields
             $xx->addConditionEquals($field, $do->{$field});
         }
         $insert = false;
     }
     if ($insert) {
         //echo "Doing insert ...";
         $field_list = $do->__get_fields();
         foreach ($field_list as $key => $value) {
             $saved = false;
             if (isset($this->fetchedAsProperties[$key])) {
                 $xx->add($key, PropertiesUtils::saveToString($value, false));
                 $saved = true;
             }
             if (!$saved) {
                 //prevedere l'utilizzo di addBoolean + test
                 $xx->add($key, $value);
             }
         }
         if (isset($all_fields["dataora_creazione"])) {
             $xx->addNow("dataora_creazione");
         }
     } else {
         //echo "Doing update ...";
         $field_list = $do->__getChangedFields();
         foreach ($field_list as $key) {
             $saved = false;
             if (isset($this->fetchedAsProperties[$key])) {
                 $xx->add($key, PropertiesUtils::saveToString($do->{$key}, false));
                 $saved = true;
             }
             if (!$saved) {
                 //prevedere l'utilizzo di addBoolean + test
                 $xx->add($key, $do->{$key});
             }
         }
     }
     if (isset($all_fields["dataora_ultima_modifica"])) {
         $xx->addNow("dataora_ultima_modifica");
     }
     $xx->exec();
     //se posso salvo l'id nella chiave primaria.
     if ($do->__isNew() && count($pks) == 1) {
         $insert_id = $xx->insert_id();
         $do->{$pks[0]} = $insert_id;
     }
     $do->__markAsSaved();
 }