@@ -22,7 +22,7 @@ class PhpObject < OpenStruct
22
22
attr_accessor :_php_classname
23
23
24
24
def to_assoc
25
- each_pair
25
+ each_pair . to_a
26
26
end
27
27
end
28
28
@@ -90,8 +90,8 @@ def PHP.serialize(var, assoc = false) # {{{
90
90
if var . respond_to? ( :to_assoc )
91
91
v = var . to_assoc
92
92
# encode as Object with same name
93
- class_name = var &. _php_classname || var . class . to_s
94
- s << "O:#{ class_name . bytesize } :\" #{ class_name . downcase } \" :#{ v . length } :{"
93
+ class_name = var . respond_to? ( : _php_classname) ? var . _php_classname : var . class . to_s . downcase
94
+ s << "O:#{ class_name . bytesize } :\" #{ class_name } \" :#{ v . length } :{"
95
95
v . each do |k , v |
96
96
s << "#{ PHP . serialize ( k . to_s , assoc ) } #{ PHP . serialize ( v , assoc ) } "
97
97
end
@@ -221,7 +221,8 @@ def PHP.do_unserialize(string, classmap, assoc)
221
221
when 'O' # object, O:length:"class":length:{[attribute][value]...}
222
222
# class name (lowercase in PHP, grr)
223
223
len = string . read_until ( ':' ) . to_i + 3 # quotes, seperator
224
- klass = string . read ( len ) [ 1 ...-2 ] . capitalize . intern # read it, kill useless quotes
224
+ klass_in_php = string . read ( len ) [ 1 ...-2 ]
225
+ klass = klass_in_php . capitalize . intern # read it, kill useless quotes
225
226
226
227
# read the attributes
227
228
attrs = [ ]
@@ -247,7 +248,7 @@ def PHP.do_unserialize(string, classmap, assoc)
247
248
val = val . new
248
249
rescue NameError # Nope; make a new PhpObject
249
250
val = PhpObject . new . tap { |php_obj |
250
- php_obj . _php_classname = klass . to_s
251
+ php_obj . _php_classname = klass_in_php . to_s
251
252
}
252
253
end
253
254
end
0 commit comments