@@ -46,15 +46,15 @@ class Record
4646 * Record constructor.
4747 *
4848 * @param Table $table
49- * @param $recordIndex
50- * @param bool $rawData
49+ * @param $recordIndex
50+ * @param bool $rawData
5151 */
5252 public function __construct (Table $ table , $ recordIndex , $ rawData = false )
5353 {
5454 $ this ->table = $ table ;
5555 $ this ->memoFile = $ table ->memoFile ;
5656 $ this ->recordIndex = $ recordIndex ;
57- $ this ->choppedData = array () ;
57+ $ this ->choppedData = [] ;
5858
5959 if ($ rawData && strlen ($ rawData ) > 0 ) {
6060 $ this ->inserted = false ;
@@ -131,8 +131,14 @@ public function getRecordIndex()
131131 return $ this ->recordIndex ;
132132 }
133133
134+ public function setRecordIndex ($ index )
135+ {
136+ $ this ->recordIndex = $ index ;
137+ }
138+
134139 /**
135140 * @param string $columnName
141+ *
136142 * @return mixed
137143 */
138144 public function getString ($ columnName )
@@ -345,7 +351,7 @@ public function getNum($columnName)
345351 {
346352 $ s = $ this ->forceGetString ($ columnName );
347353
348- if (!$ s ) {
354+ if (!is_string ( $ s ) ) {
349355 return false ;
350356 }
351357
@@ -364,7 +370,7 @@ public function getNum($columnName)
364370
365371 /**
366372 * @param string $columnName
367- * @param $length
373+ * @param $length
368374 *
369375 * @return bool|float|int
370376 */
@@ -426,7 +432,7 @@ public function setStringByIndex($columnIndex, $value)
426432
427433 /**
428434 * @param Column $columnObj
429- * @param $value
435+ * @param $value
430436 */
431437 public function setString ($ columnObj , $ value )
432438 {
@@ -443,7 +449,7 @@ public function setString($columnObj, $value)
443449
444450 /**
445451 * @param Column $columnObj
446- * @param $value
452+ * @param $value
447453 */
448454 public function forceSetString ($ columnObj , $ value )
449455 {
@@ -456,7 +462,7 @@ public function forceSetString($columnObj, $value)
456462
457463 /**
458464 * @param string $columnName
459- * @param $value
465+ * @param $value
460466 *
461467 * @return bool
462468 */
@@ -467,7 +473,7 @@ public function setObjectByName($columnName, $value)
467473
468474 /**
469475 * @param int $columnIndex
470- * @param $value
476+ * @param $value
471477 *
472478 * @return bool
473479 */
@@ -478,7 +484,7 @@ public function setObjectByIndex($columnIndex, $value)
478484
479485 /**
480486 * @param Column $columnObj
481- * @param $value
487+ * @param $value
482488 *
483489 * @return bool
484490 */
@@ -511,19 +517,23 @@ public function setObject($columnObj, $value)
511517 return false ;
512518 }
513519
514- trigger_error ('cannot handle datatype ' . $ columnObj ->getType (), E_USER_ERROR );
520+ trigger_error ('cannot handle datatype ' . $ columnObj ->getType (), E_USER_ERROR );
515521 }
516522
517523 /**
518524 * @param Column $columnObj
519- * @param $value
525+ * @param $value
520526 *
521527 * @return bool
522528 */
523529 public function setDate ($ columnObj , $ value )
524530 {
525531 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_DATE ) {
526- trigger_error ($ columnObj ->getName () . ' is not a Date column ' , E_USER_ERROR );
532+ trigger_error ($ columnObj ->getName ().' is not a Date column ' , E_USER_ERROR );
533+ }
534+
535+ if ($ value instanceof \DateTimeInterface) {
536+ $ value = $ value ->format ('U ' );
527537 }
528538
529539 if (strlen ($ value ) == 0 ) {
@@ -536,14 +546,14 @@ public function setDate($columnObj, $value)
536546
537547 /**
538548 * @param Column $columnObj
539- * @param $value
549+ * @param $value
540550 *
541551 * @return bool
542552 */
543553 public function setDateTime ($ columnObj , $ value )
544554 {
545555 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_DATETIME ) {
546- trigger_error ($ columnObj ->getName () . ' is not a DateTime column ' , E_USER_ERROR );
556+ trigger_error ($ columnObj ->getName (). ' is not a DateTime column ' , E_USER_ERROR );
547557 }
548558
549559 if (strlen ($ value ) == 0 ) {
@@ -555,19 +565,19 @@ public function setDateTime($columnObj, $value)
555565 $ d = $ this ->zerodate + (mktime (0 , 0 , 0 , $ a ['mon ' ], $ a ['mday ' ], $ a ['year ' ]) / 86400 );
556566 $ d = pack ('i ' , $ d );
557567 $ t = pack ('i ' , mktime ($ a ['hours ' ], $ a ['minutes ' ], $ a ['seconds ' ], 0 , 0 , 0 ));
558- $ this ->choppedData [$ columnObj ->getColIndex ()] = $ d . $ t ;
568+ $ this ->choppedData [$ columnObj ->getColIndex ()] = $ d. $ t ;
559569 }
560570
561571 /**
562572 * @param Column $columnObj
563- * @param $value
573+ * @param $value
564574 *
565575 * @return bool
566576 */
567577 public function setBoolean ($ columnObj , $ value )
568578 {
569579 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_LOGICAL ) {
570- trigger_error ($ columnObj ->getName () . ' is not a DateTime column ' , E_USER_ERROR );
580+ trigger_error ($ columnObj ->getName (). ' is not a DateTime column ' , E_USER_ERROR );
571581 }
572582
573583 switch (strtoupper ($ value )) {
@@ -590,27 +600,27 @@ public function setBoolean($columnObj, $value)
590600
591601 /**
592602 * @param Column $columnObj
593- * @param $value
603+ * @param $value
594604 */
595605 public function setMemo ($ columnObj , $ value )
596606 {
597607 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_MEMO ) {
598- trigger_error ($ columnObj ->getName () . ' is not a Memo column ' , E_USER_ERROR );
608+ trigger_error ($ columnObj ->getName (). ' is not a Memo column ' , E_USER_ERROR );
599609 }
600610
601611 $ this ->forceSetString ($ columnObj , $ value );
602612 }
603613
604614 /**
605615 * @param Column $columnObj
606- * @param $value
616+ * @param $value
607617 *
608618 * @return bool
609619 */
610620 public function setFloat ($ columnObj , $ value )
611621 {
612622 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_FLOATING ) {
613- trigger_error ($ columnObj ->getName () . ' is not a Float column ' , E_USER_ERROR );
623+ trigger_error ($ columnObj ->getName (). ' is not a Float column ' , E_USER_ERROR );
614624 }
615625
616626 if (strlen ($ value ) == 0 ) {
@@ -624,14 +634,14 @@ public function setFloat($columnObj, $value)
624634
625635 /**
626636 * @param Column $columnObj
627- * @param $value
637+ * @param $value
628638 *
629639 * @return bool
630640 */
631641 public function setInt ($ columnObj , $ value )
632642 {
633643 if ($ columnObj ->getType () != self ::DBFFIELD_TYPE_NUMERIC ) {
634- trigger_error ($ columnObj ->getName () . ' is not a Number column ' , E_USER_ERROR );
644+ trigger_error ($ columnObj ->getName (). ' is not a Number column ' , E_USER_ERROR );
635645 }
636646
637647 if (strlen ($ value ) == 0 ) {
@@ -648,7 +658,7 @@ public function setInt($columnObj, $value)
648658 */
649659 public function serializeRawData ()
650660 {
651- return ($ this ->deleted ? '* ' : ' ' ) . implode ('' , $ this ->choppedData );
661+ return ($ this ->deleted ? '* ' : ' ' ). implode ('' , $ this ->choppedData );
652662 }
653663
654664 /**
@@ -658,7 +668,7 @@ public function serializeRawData()
658668 */
659669 public function getData ()
660670 {
661- $ fields = array () ;
671+ $ fields = [] ;
662672
663673 foreach ($ this ->getColumns () as $ column ) {
664674 $ fields [$ column ->name ] = $ this ->getObject ($ column );
@@ -674,7 +684,7 @@ public function getData()
674684 */
675685 public function getChoppedData ()
676686 {
677- $ fields = array () ;
687+ $ fields = [] ;
678688
679689 foreach ($ this ->choppedData as $ columnName => $ columnValue ) {
680690 $ fields [$ columnName ] = $ this ->forceGetString ($ columnName );
0 commit comments