-
Notifications
You must be signed in to change notification settings - Fork 61
Design Philosophies
In Beans, we have several design philosophies which each contributor should embrace when contributing source code and/or tests. This page discusses these philosophies.
We strive for full compliance to the WordPress Coding Standard. Though there are some exceptions, we provide the reasoning of each exception in the rule ignore. In general, our philosophy is to comply.
Memory consumption is important to us. We seek to clean up after ourselves, releasing memory whenever possible or avoiding added memory if the conditions are not correct to proceed.
We use a "bail out early" pattern to avoid unnecessary operations and memory if the conditions are not right to continue.
We unset
variables to release memory when we're done with it.
The HTML that is built by Beans is escaped before it renders. We have several wrapper functions which invoke a HTML builder function, such as beans_open_markup_e
and others. The escaping is done at the point where the HTML is built.
For custom content that hooks into one of the provided action or filter events, the theme or plugin developer is responsible to properly escape content that will be rendered out to the browser.
For example, when hooking into the '_before_markup'
action event, beans_open_markup
does not provide additional escaping on the returned content. Here, the developer is responsible to properly escape all output content before returning it to Beans.
You will notice that we use func_get_args()
throughout the Beans' APIs. In doing so, we allow developers to pass additional arguments to the functions which then are made available in the action and filter hooks.
This design gives maximum flexibility to developers when building with Beans.
In Beans, we seek to keep the global space clean by avoiding global variables and constants. In a continuing effort, we are replacing original code with functionality to avoid globals and constants.