-
Notifications
You must be signed in to change notification settings - Fork 15
Closed
Labels
Description
Todo list for the upcoming 2.x release.
Nice-to-have
- Implement PSR-14 Event Dispatcher https://www.php-fig.org/psr/psr-14/
- Add aliases to system info twig function
- Rename
example
folder towebsite
- Rename
src
folder tosystem
- Rename
sysplugins
folder toplugins
- LowerCamelCase member vars in Page class. This is already done, since all of this is possible: page.content_type, page.contentType, page.getContentType()
- Consistent naming for methods (applications instead of app, eventFilters for events, etc.)
- Integrate GitHub atom feed into the homepage of the website
- Implement a query builder class for filtering, sorting und limiting of iterable data structures
- Add readme to all system plugins (https://github.com/getherbie/herbie/tree/2.x/plugins)
Suggestions
- Group twig filters, functions and tests logically to make it more clear for the user (i.e. nav_sitemap, nav_breadcrumb, etc.)
- Replace InterceptingFilters with PSR14- EventListeners, because the latter are strongly typed
- Remove PageItem and use Page only. Lazy load content and segments.
- Replace access via magic getters with real getters (we have it already), since the latter is faster and more explicit.
- Add timestamp to css and js assets to force browsers to refresh cached css and js files
- Reformat whole code base within Phpstrom according PSR-12 definitions (and defaults)
- Add support for PHP 8.2
- Drop support for PHP 7.4 (end-of-life)
camelCase all page propertiesReason: recommended coding convention for twig is snake_casecamelCase all twig filter, functions and globals including attributesReason: recommended coding convention for twig is snake_case
Issues
- Add parent IDs to page and pageItem
- Add parent route to page and pageItem
- Plugin simplecontact: Success page after sending form doesn't work (index.php/contact:success), make it 2.x compatible, update readme.md
- Plugin simplesearch: Make it 2.x compatible, update readme.md
- Slightly refactor Event Handler and send any class to listener
- Consistent handling for Twig globals as for filters, functions, and tests
- Whitelist classes to be injected into plugin
- Move twig "body_class" function from "twig plus" to "twig core" plugin and rename it to "css_classes"
- Move twig "snippet" function from "twig_plus" to "twig_core" plugin
- Move twig "page_title" function from "twig_plus" to "twig_core" plugin
- Group menu twig functions to make it more clear for the user (i.e. menu_sitemap, menu_breadcrumb, etc.)
- Rename twig "filter" filter due to a naming conflict with twig's own "filter" filter
- Remove twig filters, functions and tests from "twig_plus" plugin that are not generic like pages_filtered() or pages_recent()
- Rename "link_file" twig function to "link_media"
- Rename "file" twig function to "link_file" (the above must be done first)
- Remove \herbie\TwigFilter, \herbie\TwigFunction, and \herbie\TwigTest
- Remove unused methods in \herbie\PageList, since we have the query method now
- Rename
event
folder toevents
- Rename
herbie\sysplugin
namespace toherbie\sysplugins
- Rename
tests
namespace toherbie\tests
- Move commands into
commands
folder - Move middlewares into
middlewares
folder - Enhance pagination class with proper members, methods and the narrowed list of items, etc.
- Use query builder in "menu_list" twig function
- Implement pagination in query builder, see https://herbie.tebe.ch/doc/indepth/query-builder#paginate
Not necessary
-
Update ServerRequest in Container with current Request including needed arguments like route, routeParams or pageRoute with params can be retrieved by UrlManager
Won't fix or unsolvable
- robots.txt doesn't work with internal PHP server (example link http://localhost:9999/robots.txt). Reason: Seems to be an issue with the PHP web server itself.
- sitemap.xml doesn't work with internal php server (example link http://localhost:9999/sitemap.xml). Reason: Seems to be an issue with the PHP web server itself.
- Prefix all twig filters, functions and tests with
herbie_
,h_
or similar (to prevent naming conflicts and better distinguish twig-owned filters, functions and tests). Reason: Makes filters, function or tests too clumsy. - Evaluate and include illuminate collections in twig templates. Reason: Collections are indeed very useful, but in Twig not as practical as thought.
ernestbuffington