This new component will be built on the framework's basic structure, which already includes login, messaging (alertify), media management (JS and CSS), form helpers, menu management and so on. It will allow news articles to be added, edited and deleted in the system.
A cache must always have a limit, both for resource usage and for performance. As already discussed, many systems use time-based on-demand caching. This means the system remains alert and periodically collects expired cache entries at a predefined interval. This is one of the most widely used approaches.
The application’s foundations
As noted earlier, I will begin with Jaisiel Delance’s PHP implementation of the MVC pattern, whose structure is summarised in the following diagram:
Combining the power of major CMS platforms with that of major HTML editors is certainly a considerable challenge. WYSIWYG, short for 'what you see is what you get', is more than an acronym: it represents an important goal for the user experience. It enables users to become familiar with the system intuitively and confidently.
The CMS comes with news, sections, pages, default, login and configuration components installed in the back end.
Unlike the back end, the front end will use modules rather than components.
Components can be added or disabled as required. A disabled component will not be loaded into the system.
This also makes it possible to implement user access control lists (ACLs) and configure access by component. An administrator, for example, would have access to all components, while a journalist would only have access to news and sections.
When considering a suitable caching system, I wanted it to be simple and fast, without compromising information integrity by displaying outdated website content.
The system can be deployed on Unix, MacOS and Windows servers. It can run on Apache, IIS and any other web server capable of interpreting PHP.
The back end will be the more substantial part of the system. It does not matter if it loads many libraries or files: content changes far less often than it is accessed. See the appendix, “Putting dynamic content into perspective”.
Most content management systems on the market use a system very similar to the one described, including modules, category management and organisation into components.
Modules are the building blocks of our site. They encapsulate blocks of content that we embed at different positions on a page.
These modules are embedded in the application and are considered generic, commonly used elements. They consist of plain HTML, editable through a floating WYSIWYG editor in the page creation interface.
Pages work well up to this point, but some services offered by the website may not make sense as pages: a web service, for example, or a controller handling AJAX requests.