Skip to content
Permalink
Browse files

Merge branch '4.0.x'

* 4.0.x: (61 commits)
  Optimized build files for 4.0.3
  Release 4.0.3
  Updated package to 4.0.3 and added release notes
  Bump Zephir to 0.12.16
  Fix [Source on GitHub] links
  Typos
  Change style code to camelCase
  #13655 - All tests for Annotations\Annotation
  Fixed asset
  Replaced implementation
  Missing let
  Use filepath to build correct path
  Styling fix [ci-skip]
  Updated Changelog
  Updated Changelog
  Without doing a file exists check we aren't able to detect if extension is set. I would like to make the users responsibility to not add the extension like it's described in the docs. Fixed #14756
  delete useless delete file and check if content exist in Apcu
  fix name class issu
  fix static code analytic
  #13655 - All tests done for Annotations/Adapter/* (Apcu/Memory/Stream)
  ...
  • Loading branch information
niden committed Jan 25, 2020
2 parents ef31ca8 + feb2f5a commit d234b7b422b264e513959c2ecf7b75f1523be125
Showing with 400,819 additions and 400,354 deletions.
  1. +1 −1 .travis.yml
  2. +1 −0 BACKERS.md
  3. +15 −1 CHANGELOG-4.0.md
  4. +2 −2 appveyor.yml
  5. +132,497 −132,537 build/php7/32bits/phalcon.zep.c
  6. +3 −3 build/php7/32bits/phalcon.zep.h
  7. +3 −3 build/php7/32bits/php_phalcon.h
  8. +132,497 −132,537 build/php7/64bits/phalcon.zep.c
  9. +3 −3 build/php7/64bits/phalcon.zep.h
  10. +3 −3 build/php7/64bits/php_phalcon.h
  11. +132,497 −132,537 build/php7/safe/phalcon.zep.c
  12. +3 −3 build/php7/safe/phalcon.zep.h
  13. +3 −3 build/php7/safe/php_phalcon.h
  14. +1 −1 config.json
  15. +1 −1 ext/install
  16. +1 −1 ext/kernel/array.c
  17. +1 −1 ext/kernel/array.h
  18. +1 −1 ext/kernel/backtrace.c
  19. +1 −1 ext/kernel/backtrace.h
  20. +1 −1 ext/kernel/debug.c
  21. +1 −1 ext/kernel/debug.h
  22. +1 −1 ext/kernel/exception.c
  23. +1 −1 ext/kernel/exception.h
  24. +1 −1 ext/kernel/exit.c
  25. +1 −1 ext/kernel/exit.h
  26. +1 −1 ext/kernel/fcall.c
  27. +1 −1 ext/kernel/fcall.h
  28. +1 −1 ext/kernel/file.c
  29. +1 −1 ext/kernel/file.h
  30. +1 −1 ext/kernel/filter.c
  31. +1 −1 ext/kernel/filter.h
  32. +1 −1 ext/kernel/globals.h
  33. +1 −1 ext/kernel/iterator.c
  34. +1 −1 ext/kernel/iterator.h
  35. +1 −1 ext/kernel/main.c
  36. +1 −1 ext/kernel/main.h
  37. +1 −1 ext/kernel/math.c
  38. +1 −1 ext/kernel/math.h
  39. +1 −1 ext/kernel/memory.c
  40. +1 −1 ext/kernel/memory.h
  41. +17 −1 ext/kernel/object.c
  42. +3 −1 ext/kernel/object.h
  43. +1 −1 ext/kernel/operators.c
  44. +1 −1 ext/kernel/operators.h
  45. +1 −1 ext/kernel/require.c
  46. +1 −1 ext/kernel/require.h
  47. +1 −1 ext/kernel/string.c
  48. +1 −1 ext/kernel/string.h
  49. +1 −1 ext/kernel/time.c
  50. +1 −1 ext/kernel/time.h
  51. +1 −1 ext/kernel/variables.c
  52. +1 −1 ext/kernel/variables.h
  53. +26 −26 ext/phalcon/acl/adapter/memory.zep.c
  54. +2 −2 ext/phalcon/annotations/adapter/apcu.zep.c
  55. +3 −3 ext/phalcon/annotations/annotation.zep.c
  56. +1 −1 ext/phalcon/annotations/annotationsfactory.zep.c
  57. +2 −2 ext/phalcon/annotations/collection.zep.c
  58. +8 −8 ext/phalcon/annotations/reader.zep.c
  59. +1 −1 ext/phalcon/assets/assetinterface.zep.c
  60. +6 −6 ext/phalcon/assets/collection.zep.c
  61. +17 −17 ext/phalcon/assets/manager.zep.c
  62. +2 −2 ext/phalcon/cache/cachefactory.zep.c
  63. +4 −4 ext/phalcon/cli/console.zep.c
  64. +3 −3 ext/phalcon/cli/router.zep.c
  65. +1 −1 ext/phalcon/cli/router/route.zep.c
  66. +8 −8 ext/phalcon/config/adapter/grouped.zep.c
  67. +4 −4 ext/phalcon/config/adapter/ini.zep.c
  68. +1 −1 ext/phalcon/config/adapter/json.zep.c
  69. +3 −3 ext/phalcon/config/adapter/yaml.zep.c
  70. +4 −5 ext/phalcon/config/configfactory.zep.c
  71. +46 −46 ext/phalcon/crypt.zep.c
  72. +390 −414 ext/phalcon/db/adapter/pdo/mysql.zep.c
  73. +2 −2 ext/phalcon/db/adapter/pdo/postgresql.zep.c
  74. +2 −2 ext/phalcon/db/adapter/pdo/sqlite.zep.c
  75. +1 −1 ext/phalcon/db/adapter/pdofactory.zep.c
  76. +17 −17 ext/phalcon/db/dialect/mysql.zep.c
  77. +4 −4 ext/phalcon/db/dialect/postgresql.zep.c
  78. +6 −6 ext/phalcon/db/dialect/sqlite.zep.c
  79. +4 −4 ext/phalcon/db/profiler.zep.c
  80. +1 −1 ext/phalcon/db/result/pdo.zep.c
  81. +2 −2 ext/phalcon/db/resultinterface.zep.c
  82. +23 −23 ext/phalcon/debug.zep.c
  83. +1 −1 ext/phalcon/debug.zep.h
  84. +31 −31 ext/phalcon/debug/dump.zep.c
  85. +1 −1 ext/phalcon/di/service.zep.c
  86. +7 −7 ext/phalcon/di/service/builder.zep.c
  87. +10 −10 ext/phalcon/escaper.zep.c
  88. +7 −7 ext/phalcon/events/manager.zep.c
  89. +8 −8 ext/phalcon/filter.zep.c
  90. +2 −2 ext/phalcon/filter/filterfactory.zep.c
  91. +2 −2 ext/phalcon/filter/sanitize/absint.zep.c
  92. +1 −1 ext/phalcon/filter/sanitize/email.zep.c
  93. +1 −1 ext/phalcon/filter/sanitize/floatval.zep.c
  94. +1 −1 ext/phalcon/filter/sanitize/intval.zep.c
  95. +2 −2 ext/phalcon/filter/sanitize/lower.zep.c
  96. +1 −1 ext/phalcon/filter/sanitize/special.zep.c
  97. +1 −1 ext/phalcon/filter/sanitize/specialfull.zep.c
  98. +1 −1 ext/phalcon/filter/sanitize/stringval.zep.c
  99. +1 −1 ext/phalcon/filter/sanitize/striptags.zep.c
  100. +2 −2 ext/phalcon/filter/sanitize/upper.zep.c
  101. +4 −4 ext/phalcon/filter/sanitize/upperwords.zep.c
  102. +1 −1 ext/phalcon/filter/sanitize/url.zep.c
  103. +8 −8 ext/phalcon/forms/form.zep.c
  104. +1 −1 ext/phalcon/forms/manager.zep.c
  105. +26 −26 ext/phalcon/helper/arr.zep.c
  106. +2 −2 ext/phalcon/helper/fs.zep.c
  107. +4 −4 ext/phalcon/helper/json.zep.c
  108. +39 −39 ext/phalcon/helper/str.zep.c
  109. +1 −1 ext/phalcon/html/breadcrumbs.zep.c
  110. +8 −8 ext/phalcon/http/cookie.zep.c
  111. +3 −3 ext/phalcon/http/message/request.zep.c
  112. +1 −1 ext/phalcon/http/message/requestfactory.zep.c
  113. +7 −7 ext/phalcon/http/message/response.zep.c
  114. +2 −2 ext/phalcon/http/message/responsefactory.zep.c
  115. +7 −7 ext/phalcon/http/message/serverrequest.zep.c
  116. +37 −37 ext/phalcon/http/message/serverrequestfactory.zep.c
  117. +2 −2 ext/phalcon/http/message/streamfactory.zep.c
  118. +13 −13 ext/phalcon/http/message/uploadedfile.zep.c
  119. +1 −1 ext/phalcon/http/message/uploadedfilefactory.zep.c
  120. +33 −33 ext/phalcon/http/message/uri.zep.c
  121. +81 −81 ext/phalcon/http/request.zep.c
  122. +5 −5 ext/phalcon/http/request/file.zep.c
  123. +10 −10 ext/phalcon/http/response.zep.c
  124. +1 −1 ext/phalcon/http/response/cookies.zep.c
  125. +7 −7 ext/phalcon/http/response/headers.zep.c
  126. +124 −124 ext/phalcon/image/adapter/gd.zep.c
  127. +64 −90 ext/phalcon/image/adapter/imagick.zep.c
  128. +1 −1 ext/phalcon/image/imagefactory.zep.c
  129. +16 −16 ext/phalcon/loader.zep.c
  130. +3 −3 ext/phalcon/logger.zep.c
  131. +2 −2 ext/phalcon/logger/adapter/stream.zep.c
  132. +6 −6 ext/phalcon/logger/adapter/syslog.zep.c
  133. +2 −2 ext/phalcon/logger/loggerfactory.zep.c
  134. +1 −1 ext/phalcon/messages/messages.zep.c
  135. +12 −12 ext/phalcon/mvc/micro.zep.c
  136. +44 −44 ext/phalcon/mvc/model.zep.c
  137. +2 −2 ext/phalcon/mvc/model/behavior/timestampable.zep.c
  138. +7 −7 ext/phalcon/mvc/model/binder.zep.c
  139. +6 −6 ext/phalcon/mvc/model/criteria.zep.c
  140. +11 −11 ext/phalcon/mvc/model/manager.zep.c
  141. +2 −2 ext/phalcon/mvc/model/metadata/stream.zep.c
  142. +102 −102 ext/phalcon/mvc/model/query.zep.c
  143. +36 −36 ext/phalcon/mvc/model/query/builder.zep.c
  144. +1 −1 ext/phalcon/mvc/model/relationinterface.zep.c
  145. +1 −1 ext/phalcon/mvc/model/resultset/complex.zep.c
  146. +1 −1 ext/phalcon/mvc/model/row.zep.c
  147. +2 −2 ext/phalcon/mvc/model/transaction.zep.c
  148. +3 −3 ext/phalcon/mvc/model/transaction/manager.zep.c
  149. +2 −2 ext/phalcon/mvc/router/annotations.zep.c
  150. +1 −1 ext/phalcon/mvc/router/group.zep.c
  151. +1 −1 ext/phalcon/mvc/router/route.zep.c
  152. +14 −14 ext/phalcon/mvc/view.zep.c
  153. +2 −2 ext/phalcon/mvc/view/engine/php.zep.c
  154. +16 −16 ext/phalcon/mvc/view/engine/volt.zep.c
  155. +111 −99 ext/phalcon/mvc/view/engine/volt/compiler.zep.c
  156. +10 −10 ext/phalcon/mvc/view/simple.zep.c
  157. +2 −2 ext/phalcon/paginator/adapter/model.zep.c
  158. +1 −1 ext/phalcon/paginator/adapter/nativearray.zep.c
  159. +1 −1 ext/phalcon/paginator/paginatorfactory.zep.c
  160. +13 −13 ext/phalcon/security.zep.c
  161. +4 −4 ext/phalcon/security/random.zep.c
  162. +28 −12 ext/phalcon/session/adapter/stream.zep.c
  163. +2 −2 ext/phalcon/session/manager.zep.c
  164. +34 −45 ext/phalcon/storage/adapter/apcu.zep.c
  165. +1 −1 ext/phalcon/storage/adapter/libmemcached.zep.c
  166. +10 −11 ext/phalcon/storage/adapter/redis.zep.c
  167. +84 −106 ext/phalcon/storage/adapter/stream.zep.c
  168. +2 −2 ext/phalcon/storage/serializer/base64.zep.c
  169. +1 −1 ext/phalcon/storage/serializer/json.zep.c
  170. +5 −5 ext/phalcon/tag.zep.c
  171. +2 −2 ext/phalcon/tag/select.zep.c
  172. +1 −1 ext/phalcon/text.zep.c
  173. +1 −1 ext/phalcon/translate/adapter/nativearray.zep.c
  174. +1 −1 ext/phalcon/translate/interpolator/indexedarray.zep.c
  175. +1 −1 ext/phalcon/translate/translatefactory.zep.c
  176. +4 −4 ext/phalcon/validation.zep.c
  177. +1 −1 ext/phalcon/validation/validator/callback.zep.c
  178. +1 −1 ext/phalcon/validation/validator/email.zep.c
  179. +3 −3 ext/phalcon/validation/validator/file/mimetype.zep.c
  180. +2 −2 ext/phalcon/validation/validator/file/resolution/equal.zep.c
  181. +2 −2 ext/phalcon/validation/validator/file/resolution/max.zep.c
  182. +2 −2 ext/phalcon/validation/validator/file/resolution/min.zep.c
  183. +1 −1 ext/phalcon/validation/validator/file/size/equal.zep.c
  184. +1 −1 ext/phalcon/validation/validator/ip.zep.c
  185. +1 −1 ext/phalcon/validation/validator/stringlength.zep.c
  186. +1 −1 ext/phalcon/validation/validator/stringlength/max.zep.c
  187. +1 −1 ext/phalcon/validation/validator/stringlength/min.zep.c
  188. +2 −2 ext/phalcon/validation/validator/uniqueness.zep.c
  189. +2 −2 ext/phalcon/validation/validator/url.zep.c
  190. +1 −1 ext/phalcon/validation/validatorfactory.zep.c
  191. +2 −2 ext/phalcon/validation/validatorfactory.zep.h
  192. +1 −1 ext/phalcon/validation/validatorinterface.zep.c
  193. +3 −3 ext/phalcon/version.zep.c
  194. +2 −2 ext/php_phalcon.h
  195. +13 −18 package.xml
  196. +1 −1 phalcon/Annotations/AnnotationsFactory.zep
  197. +1 −1 phalcon/Assets/AssetInterface.zep
  198. +1 −1 phalcon/Cache/CacheFactory.zep
  199. +1 −1 phalcon/Config/ConfigFactory.zep
  200. +0 −13 phalcon/Db/Adapter/Pdo/Mysql.zep
  201. +1 −1 phalcon/Db/Adapter/PdoFactory.zep
  202. +1 −1 phalcon/Db/Result/Pdo.zep
  203. +2 −2 phalcon/Db/ResultInterface.zep
  204. +1 −1 phalcon/Debug.zep
  205. +1 −1 phalcon/Filter/FilterFactory.zep
  206. +1 −1 phalcon/Filter/Sanitize/UpperWords.zep
  207. +1 −1 phalcon/Helper/Arr.zep
  208. +2 −2 phalcon/Helper/Str.zep
  209. +1 −1 phalcon/Image/ImageFactory.zep
  210. +1 −1 phalcon/Logger/LoggerFactory.zep
  211. +1 −1 phalcon/Mvc/Micro.zep
  212. +2 −2 phalcon/Mvc/Model/Binder.zep
  213. +1 −1 phalcon/Mvc/Model/RelationInterface.zep
  214. +2 −2 phalcon/Mvc/View/Engine/Volt/Compiler.zep
  215. +1 −1 phalcon/Paginator/PaginatorFactory.zep
  216. +9 −3 phalcon/Session/Adapter/Stream.zep
  217. +2 −1 phalcon/Storage/Adapter/Redis.zep
  218. +17 −12 phalcon/Storage/Adapter/Stream.zep
  219. +1 −1 phalcon/Tag.zep
  220. +1 −1 phalcon/Translate/Adapter/NativeArray.zep
  221. +1 −1 phalcon/Translate/TranslateFactory.zep
  222. +1 −1 phalcon/Validation/Validator/File/Resolution/Equal.zep
  223. +1 −1 phalcon/Validation/Validator/File/Resolution/Max.zep
  224. +1 −1 phalcon/Validation/Validator/File/Resolution/Min.zep
  225. +1 −1 phalcon/Validation/Validator/File/Size/Equal.zep
  226. +1 −1 phalcon/Validation/Validator/StringLength.zep
  227. +0 −1 phalcon/Validation/ValidatorFactory.zep
  228. +1 −1 phalcon/Validation/ValidatorInterface.zep
  229. +1 −1 phalcon/Version.zep
  230. +21 −0 resources/CHANGELOG-4.0.md
  231. +17 −14 tests/_ci/generate-api-docs.php
  232. +1 −1 tests/_ci/nanobox/boxfile.7.2.yml
  233. +1 −1 tests/_ci/nanobox/boxfile.7.3.yml
  234. +58 −0 tests/_data/assets/config/config-with.in-file.name.ini
  235. +4 −4 tests/_data/fixtures/Traits/Db/MysqlTrait.php
  236. +24 −7 tests/_data/fixtures/Traits/LoggerTrait.php
  237. +16 −3 tests/integration/Mvc/Model/SaveCest.php
  238. +5 −0 tests/integration/Mvc/View/Engine/Volt/Compiler/CompileStringCest.php
  239. +15 −3 tests/unit/Annotations/Adapter/Apcu/ConstructCest.php
  240. +30 −3 tests/unit/Annotations/Adapter/Apcu/GetCest.php
  241. +25 −3 tests/unit/Annotations/Adapter/Apcu/GetMethodCest.php
  242. +37 −3 tests/unit/Annotations/Adapter/Apcu/GetMethodsCest.php
  243. +36 −3 tests/unit/Annotations/Adapter/Apcu/GetPropertiesCest.php
  244. +25 −3 tests/unit/Annotations/Adapter/Apcu/GetPropertyCest.php
  245. +0 −32 tests/unit/Annotations/Adapter/Apcu/GetReaderCest.php
  246. +51 −0 tests/unit/Annotations/Adapter/Apcu/GetSetReaderCest.php
  247. +0 −32 tests/unit/Annotations/Adapter/Apcu/ReadCest.php
  248. +66 −0 tests/unit/Annotations/Adapter/Apcu/ReadWriteCest.php
  249. +0 −32 tests/unit/Annotations/Adapter/Apcu/SetReaderCest.php
  250. +0 −32 tests/unit/Annotations/Adapter/Apcu/WriteCest.php
  251. +39 −0 tests/unit/Annotations/Adapter/Memory/ConstructCest.php
  252. +25 −3 tests/unit/Annotations/Adapter/Memory/GetCest.php
  253. +20 −3 tests/unit/Annotations/Adapter/Memory/GetMethodCest.php
  254. +32 −3 tests/unit/Annotations/Adapter/Memory/GetMethodsCest.php
  255. +31 −3 tests/unit/Annotations/Adapter/Memory/GetPropertiesCest.php
  256. +18 −3 tests/unit/Annotations/Adapter/Memory/GetPropertyCest.php
  257. +0 −32 tests/unit/Annotations/Adapter/Memory/GetReaderCest.php
  258. +46 −0 tests/unit/Annotations/Adapter/Memory/GetSetReaderCest.php
  259. +0 −32 tests/unit/Annotations/Adapter/Memory/ReadCest.php
  260. +52 −0 tests/unit/Annotations/Adapter/Memory/ReadWriteCest.php
  261. +0 −32 tests/unit/Annotations/Adapter/Memory/SetReaderCest.php
  262. +0 −32 tests/unit/Annotations/Adapter/Memory/WriteCest.php
  263. +0 −32 tests/unit/Annotations/Adapter/Stream/GetReaderCest.php
  264. +50 −0 tests/unit/Annotations/Adapter/Stream/GetSetReaderCest.php
  265. +0 −32 tests/unit/Annotations/Adapter/Stream/SetReaderCest.php
  266. +12 −3 tests/unit/Annotations/Annotation/ConstructCest.php
  267. +28 −3 tests/unit/Annotations/Annotation/GetArgumentCest.php
  268. +26 −3 tests/unit/Annotations/Annotation/GetArgumentsCest.php
  269. +28 −3 tests/unit/Annotations/Annotation/GetExprArgumentsCest.php
  270. +34 −3 tests/unit/Annotations/Annotation/GetExpressionCest.php
  271. +10 −3 tests/unit/Annotations/Annotation/GetNameCest.php
  272. +77 −3 tests/unit/Annotations/Annotation/GetNamedArgumentCest.php
  273. +77 −3 tests/unit/Annotations/Annotation/GetNamedParameterCest.php
  274. +30 −3 tests/unit/Annotations/Annotation/HasArgumentCest.php
  275. +26 −3 tests/unit/Annotations/Annotation/NumberArgumentsCest.php
  276. +16 −0 tests/unit/Config/ConfigFactory/LoadCest.php
  277. +0 −32 tests/unit/Dispatcher/GetDICest.php
  278. +0 −32 tests/unit/Dispatcher/GetEventsManagerCest.php
  279. +47 −0 tests/unit/Dispatcher/GetSetDICest.php
  280. +46 −0 tests/unit/Dispatcher/GetSetEventsManagerCest.php
  281. +0 −32 tests/unit/Dispatcher/SetDICest.php
  282. +0 −32 tests/unit/Dispatcher/SetEventsManagerCest.php
  283. +0 −31 tests/unit/Http/Response/GetEventsManagerCest.php
  284. +46 −0 tests/unit/Http/Response/GetSetEventsManagerCest.php
  285. +0 −32 tests/unit/Http/Response/SetDICest.php
  286. +0 −32 tests/unit/Http/Response/SetEventsManagerCest.php
  287. +0 −32 tests/unit/Loader/GetEventsManagerCest.php
  288. +46 −0 tests/unit/Loader/GetSetEventsManagerCest.php
  289. +0 −32 tests/unit/Loader/SetEventsManagerCest.php
  290. +55 −1 tests/unit/Storage/Adapter/Stream/GetKeysCest.php
  291. +0 −32 tests/unit/Tag/GetDICest.php
@@ -42,7 +42,7 @@ services:
env:
global:
- CC="gcc"
- ZEPHIR_VERSION="0.12.15"
- ZEPHIR_VERSION="0.12.16"
- ZEPHIR_PARSER_VERSION="v1.3.2"
- REPORT_COVERAGE=1
- PATH="${HOME}/.composer/vendor/bin:${PATH}"
@@ -81,6 +81,7 @@ Thanks for the support
[//]: github-sponsors

<a href="https://github.com/ninjapanzer"><img src="https://avatars1.githubusercontent.com/u/159591?s=460&v=4" title="Paul Scarrone" width="60" height="60"></a>
<a href="https://github.com/sinbadxiii"><img src="https://avatars2.githubusercontent.com/u/900273?s=460&v=4" title="Sergey Mukhin" width="60" height="60"></a>
<a href="https://github.com/niden"><img src="https://avatars2.githubusercontent.com/u/1073784?s=460&v=4" title="Nikolaos Dimopoulos" width="60" height="60"></a>
<a href="https://github.com/qmegas"><img src="https://avatars3.githubusercontent.com/u/2444896?s=460&v=4" title="qmegas" width="60" height="60"></a>
<a href="https://github.com/terolblade"><img src="https://avatars3.githubusercontent.com/u/3078649?s=460&v=4" title="Stanislav Sviridenko" width="60" height="60"></a>
@@ -1,9 +1,23 @@
# [4.0.3](https://github.com/phalcon/cphalcon/releases/tag/v4.0.3) (2020-01-25)
## Added

## Changed

## Fixed
- Fixed `Phalcon\Db\Adapter\Pdo\Mysql` Tinyint(1) is handled as boolean under MySql [#14708](https://github.com/phalcon/cphalcon/issues/14708)
- Fixed `Phalcon\Mvc\View\Engine\Volt` to produce the correct order of variables for the `join` filter [#14771](https://github.com/phalcon/cphalcon/issues/14771)
- Fixed `Phalcon\Storage\Adapter\Stream::getKeys()` bug in the absence of a directory with a prefix name [#14725](https://github.com/phalcon/cphalcon/issues/14725), [#14721](https://github.com/phalcon/cphalcon/pull/14721)
- Fixed `Phalcon\Debug::onUncaughtException` Should accept `\Throwable` instead of `\Exception` as an argument [#14738](https://github.com/phalcon/cphalcon/pull/14738)
- Fixed `Phalcon\Validation\ValidatorFactory` Should return Phalcon\Validation\ValidatorInterface [14749](https://github.com/phalcon/cphalcon/pull/14749)
- Fixed `Phalcon\Mvc\Model\Binder` to now correctly call `has` and `set` on the cache object [#14743](https://github.com/phalcon/cphalcon/pull/14743)
- Fixed `Phalcon\Session\Adapter\Stream` and `Phalcon\Storage\Adapter\Stream` to correctly handle simultaneous read/write [#14694](https://github.com/phalcon/cphalcon/issues/14694)
- Fixed `Phalcon\Config\ConfigFactory` to always add the correct extension [#14756](https://github.com/phalcon/cphalcon/issues/14756)

# [4.0.2](https://github.com/phalcon/cphalcon/releases/tag/v4.0.1) (2020-01-12)
## Fixed
- Fixed Phalcon version number incorrectly set in the previous release

# [4.0.1](https://github.com/phalcon/cphalcon/releases/tag/v4.0.1) (2020-01-11)
## Added

## Changed
- Changed the logic when logging times for `Phalcon\Logger` to use `DateTimeImmutable` so as to handle microseconds if necessary. [#2893](https://github.com/phalcon/cphalcon/issues/2893)

0 comments on commit d234b7b

Please sign in to comment.
You can’t perform that action at this time.