@@ -4,20 +4,36 @@ All notable changes to this project will be documented in this file.
44The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
55and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ 3.0.0] - 2024-10-29
8+ ### Added
9+ - Official support for PostgreSQL.
10+
11+ ### Changed
12+ - Moved to ` DevTheorem ` namespace.
13+ - Phaster now validates that property values are scalar or null when inserting and updating rows.
14+ - PHP 8.1+ is now required.
15+
16+ ### Removed
17+ - All previously deprecated methods.
18+
19+
720## [ 2.9.0] - 2024-09-10
821### Added
922- ` processValues() ` now allows setting the ID of an existing row on the returned object, in which
1023case a new row will not be inserted, and the specified ID will be returned in the list of row IDs.
1124
25+
1226## [ 2.8.0] - 2023-12-22
1327### Added
1428- ` countEntities() ` method and corresponding ` count() ` route handler.
1529This allows counting the rows that match a query/filter without selecting them.
1630
31+
1732## [ 2.7.0] - 2023-09-27
1833### Added
1934- ` writableId ` bool property to optionally make the ID column writable.
2035
36+
2137## [ 2.6.0] - 2023-08-01
2238### Added
2339- ` output ` bool parameter on ` Prop ` constructor.
@@ -28,6 +44,7 @@ This allows counting the rows that match a query/filter without selecting them.
2844### Fixed
2945- Error when a ` Prop ` depends on a property declared in one of the ` get*Map ` methods.
3046
47+
3148## [ 2.5.0] - 2023-03-05
3249### Changed
3350- Minor code cleanup and refactoring.
@@ -38,6 +55,7 @@ error messages which lack important details about why the conflict occurred. A b
3855is to add custom checks and errors for conflicts that can occur during normal usage.
3956- Unnecessary ` QueryOptions ` methods in favor of readonly properties.
4057
58+
4159## [ 2.4.0] - 2022-11-06
4260### Added
4361- ` getSelectProps() ` method as a preferred alternative to ` getPropMap() ` when using PHP 8+.
@@ -48,6 +66,7 @@ is to add custom checks and errors for conflicts that can occur during normal us
4866### Deprecated
4967- ` getPropMap() ` method. Use ` getSelectProps() ` instead.
5068
69+
5170## [ 2.3.0] - 2021-12-15
5271### Added
5372- ` getBaseSelect() ` method to support bound params in base select query.
@@ -56,19 +75,23 @@ is to add custom checks and errors for conflicts that can occur during normal us
5675- ` propertiesToColumns() ` now optionally allows conversions with a partial column map.
5776This makes it possible to generate secondary filters using a subset of properties.
5877
78+
5979## [ 2.2.2] - 2021-08-15
6080### Changed
6181- Internal refactoring and static analysis improvements.
6282
83+
6384## [ 2.2.1] - 2021-02-22
6485### Changed
6586- Specified additional types and enabled Psalm static analysis.
6687- PHP 7.4+ is now required.
6788
89+
6890## [ 2.2.0] Primordial Refinement - 2020-03-22
6991### Added
7092- ` getOriginalFilter() ` method to ` QueryOptions ` for retrieving the unprocessed filter array.
7193
94+
7295## [ 2.1.0] Benevolent Mystique - 2019-08-05
7396### Added
7497- ` processRow() ` method to alter a row directly before it is inserted or
@@ -79,6 +102,7 @@ updated. Useful for setting columns that aren't in the property map.
79102if no rows were affected (e.g. if the request didn't change the value of any property).
80103- Excluded additional test files from production bundle.
81104
105+
82106## [ 2.0.0] Pressurized Arrangement - 2019-03-22
83107### Added
84108- ` $sort ` parameter to ` getEntitiesByIds() ` .
@@ -91,11 +115,13 @@ if no rows were affected (e.g. if the request didn't change the value of any pro
91115- Previously deprecated ` getBaseSelect() ` , ` getIdColumn() ` , ` getSelectId() ` ,
92116and ` rowsToJson() ` methods.
93117
118+
94119## [ 1.2.2] Pasteurized Recognition - 2019-03-04
95120### Fixed
96121- ` getById() ` route handler now respects ` fields ` parameter and only selects
97122the specified properties.
98123
124+
99125## [ 1.2.1] Reliant Progenitor - 2019-02-24
100126### Added
101127- Support for specifying dependent fields along with ` getValue() ` function.
@@ -107,6 +133,7 @@ aren't default, will still be selected but not output.
107133when selecting the field ` a.b.c ` , if ` a ` is a nullable group it will now be checked and
108134set to null as expected. Previously only the direct parent of a selected field was checked.
109135
136+
110137## [ 1.2.0] Emancipation Propagation - 2019-02-22
111138### Added
112139- Default and maximum limit can now be configured for each search route.
@@ -127,50 +154,57 @@ If left empty all default properties will be selected.
127154instead. If the select query uses a different ID column name than the table used for
128155inserts/updates/deletes, override the table's ID column name by setting an ` id ` property in ` getMap() ` .
129156
157+
130158## [ 1.1.1] Maximal Limitation - 2019-01-16
131159### Fixed
132160- Error when requesting the maximum page size of 1000.
133161
134162### Changed
135163- Upgraded peachy-sql dependency to v6.0.
136164
165+
137166## [ 1.1.0] Ambiguous Identity - 2019-01-11
138167### Added
139168- ` getSelectId() ` method to optionally override the column used to get entities by ID.
140169Necessary when a joined table has a column with the same name as the ID column.
141170- Return ` offset ` , ` limit ` , and ` lastPage ` properties from search route handler.
142171This makes it easy for API clients to see if there are more results to request.
143172
173+
144174## [ 1.0.2] Optimal Fixture - 2017-05-16
145175### Changed
146176- Methods for retrieving, patching, and deleting entities by IDs now
147177return early if passed an empty IDs array.
148178
179+
149180## [ 1.0.1] Exacting Characteristic - 2017-03-14
150181### Changed
151182- ` RouteHandler ` now ensures that search parameters have the correct type.
152183
184+
153185## [ 1.0.0] Cosmic Luminary - 2017-03-09
154186### Changed
155187- Initial stable release
156188
157- [ 2.9.0 ] : https://github.com/theodorejb/phaster/compare/v2.8.0...v2.9.0
158- [ 2.8.0 ] : https://github.com/theodorejb/phaster/compare/v2.7.0...v2.8.0
159- [ 2.7.0 ] : https://github.com/theodorejb/phaster/compare/v2.6.0...v2.7.0
160- [ 2.6.0 ] : https://github.com/theodorejb/phaster/compare/v2.5.0...v2.6.0
161- [ 2.5.0 ] : https://github.com/theodorejb/phaster/compare/v2.4.0...v2.5.0
162- [ 2.4.0 ] : https://github.com/theodorejb/phaster/compare/v2.3.0...v2.4.0
163- [ 2.3.0 ] : https://github.com/theodorejb/phaster/compare/v2.2.2...v2.3.0
164- [ 2.2.2 ] : https://github.com/theodorejb/phaster/compare/v2.2.1...v2.2.2
165- [ 2.2.1 ] : https://github.com/theodorejb/phaster/compare/v2.2.0...v2.2.1
166- [ 2.2.0 ] : https://github.com/theodorejb/phaster/compare/v2.1.0...v2.2.0
167- [ 2.1.0 ] : https://github.com/theodorejb/phaster/compare/v2.0.0...v2.1.0
168- [ 2.0.0 ] : https://github.com/theodorejb/phaster/compare/v1.2.2...v2.0.0
169- [ 1.2.2 ] : https://github.com/theodorejb/phaster/compare/v1.2.1...v1.2.2
170- [ 1.2.1 ] : https://github.com/theodorejb/phaster/compare/v1.2.0...v1.2.1
171- [ 1.2.0 ] : https://github.com/theodorejb/phaster/compare/v1.1.1...v1.2.0
172- [ 1.1.1 ] : https://github.com/theodorejb/phaster/compare/v1.1.0...v1.1.1
173- [ 1.1.0 ] : https://github.com/theodorejb/phaster/compare/v1.0.2...v1.1.0
174- [ 1.0.2 ] : https://github.com/theodorejb/phaster/compare/v1.0.1...v1.0.2
175- [ 1.0.1 ] : https://github.com/theodorejb/phaster/compare/v1.0.0...v1.0.1
176- [ 1.0.0 ] : https://github.com/theodorejb/phaster/tree/v1.0.0
189+
190+ [ 3.0.0 ] : https://github.com/devtheorem/phaster/compare/v2.9.0...v3.0.0
191+ [ 2.9.0 ] : https://github.com/devtheorem/phaster/compare/v2.8.0...v2.9.0
192+ [ 2.8.0 ] : https://github.com/devtheorem/phaster/compare/v2.7.0...v2.8.0
193+ [ 2.7.0 ] : https://github.com/devtheorem/phaster/compare/v2.6.0...v2.7.0
194+ [ 2.6.0 ] : https://github.com/devtheorem/phaster/compare/v2.5.0...v2.6.0
195+ [ 2.5.0 ] : https://github.com/devtheorem/phaster/compare/v2.4.0...v2.5.0
196+ [ 2.4.0 ] : https://github.com/devtheorem/phaster/compare/v2.3.0...v2.4.0
197+ [ 2.3.0 ] : https://github.com/devtheorem/phaster/compare/v2.2.2...v2.3.0
198+ [ 2.2.2 ] : https://github.com/devtheorem/phaster/compare/v2.2.1...v2.2.2
199+ [ 2.2.1 ] : https://github.com/devtheorem/phaster/compare/v2.2.0...v2.2.1
200+ [ 2.2.0 ] : https://github.com/devtheorem/phaster/compare/v2.1.0...v2.2.0
201+ [ 2.1.0 ] : https://github.com/devtheorem/phaster/compare/v2.0.0...v2.1.0
202+ [ 2.0.0 ] : https://github.com/devtheorem/phaster/compare/v1.2.2...v2.0.0
203+ [ 1.2.2 ] : https://github.com/devtheorem/phaster/compare/v1.2.1...v1.2.2
204+ [ 1.2.1 ] : https://github.com/devtheorem/phaster/compare/v1.2.0...v1.2.1
205+ [ 1.2.0 ] : https://github.com/devtheorem/phaster/compare/v1.1.1...v1.2.0
206+ [ 1.1.1 ] : https://github.com/devtheorem/phaster/compare/v1.1.0...v1.1.1
207+ [ 1.1.0 ] : https://github.com/devtheorem/phaster/compare/v1.0.2...v1.1.0
208+ [ 1.0.2 ] : https://github.com/devtheorem/phaster/compare/v1.0.1...v1.0.2
209+ [ 1.0.1 ] : https://github.com/devtheorem/phaster/compare/v1.0.0...v1.0.1
210+ [ 1.0.0 ] : https://github.com/devtheorem/phaster/tree/v1.0.0
0 commit comments