Osm Admin: Stopping The Project
2 years ago ∙ 2 minutes read
I stopped working on the Osm Admin project, for financial reasons. Did it hurt? A lot. Was it necessary? Unfortunately, yes. This post is a short retrospection on this matter.
2 years ago ∙ 2 minutes read
I stopped working on the Osm Admin project, for financial reasons. Did it hurt? A lot. Was it necessary? Unfortunately, yes. This post is a short retrospection on this matter.
2 years ago ∙ 2 minutes read
Last two weeks were about implementing initial version of an Osm Admin grid, integrating it seamlessly with the editing form, and enabling mass-editing of multiple objects.
After finishing it, I realized that Osm Admin had become bigger than Osm Framework! To keep up, I started writing docs for it.
And now, you have a step-by-step guide for creating a project, adding Osm Admin to it and a practical example of an admin area that you can copy to your project and try it out locally.
2 years ago ∙ 2 minutes read
Recently, I implemented mass-editing in Osm Admin. It allows you to view and edit multiple objects in a single operation.
This article describes mass-editing of products in a typical e-commerce application.
2 years ago ∙ 3 minutes read
The last 4 weeks were mostly a vacation. It's been a time for reflection, but still, I delivered some new features.
In Osm Admin, forms already allow creating new objects and saving them to the database, and editing one or several existing objects.
I've also implemented URL query filters that are applied to the underlying database query and that can be displayed in the user interface.
From now on, Osm Framework and all projects built with it - can be installed and developed under Apache and on Windows.
2 years ago ∙ 3 minutes read
In the user interface, you can narrow displayed data using grid column filters, or filters displayed in the sidebar. To enable that, apply #[Filter\*]
attributes to class properties.
Applied filters appear in the URL query parameters, for example, .../edit?id=5+16+19
, and on the page.
You can apply filters not only to a grid page, but also to a form page - to mass edit all matching objects, or to an action URL (edit, delete, or custom) - to perform the action on all matching objects.
In the same way, you can apply filters to the API URLs in order to retrieve or modify matching objects in a script.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 1 minute read
After you got a project up and running, let's have a look what's inside. Every directory has its purpose. Learn where to put your creative efforts!
Note. This post is moved to Osm Framework documentation.
3 years ago ∙ 2 minutes read
This website got a completely new look. There are new blog posts diving into core Osm Framework features. Osm Framework itself offers more convenient page layout, website-wide header, footer and <head>
, customizable error pages. The themes support theme-specific CSS styles and JS scripts not bound to any module. New projects come with a handy bin/install.sh
script that simplifies installation on Linux. From now on, run osmh
without any parameters.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 4 minutes read
In Osm Framework, an application is a set of modules that you run as a whole. There are several applications defined in the project, each having its own PHP class. Mostly, deal with the main one, Osm\App\App
. Beside the class name, every application also has a name, the main one is named Osm_App
.
Access the current application object, and the main parts of Osm Framework, via the global $osm_app
object and its properties. Add your own long-living objects there. Run an application using its HTTP or console entry point, or using Apps::run()
.
Note. This post is moved to Osm Framework documentation.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 4 minutes read
Modular software development is a well-known practice of dividing your application into several modules, each doing one thing, and doing it well. It increases readability and simplifies maintenance, as application concerns are fully separated from one another, easier to reason about, and to debug.
Modular development also encourages reuse. It's like a puzzle. Using one set of modules, you'll get an e-commerce application, using another set of modules - you'll get a blog application.
Note. This post is moved to Osm Framework documentation.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 3 minutes read
Using dynamic traits, customize anything. Inject your code in the beginning, in the end, or instead of any standard method. Even more, add new properties and methods to the existing standard classes.
Note. This post is moved to Osm Framework documentation.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 5 minutes read
Computed properties are one of Osm Framework pillars. They help to execute code only once, and only if it's actually needed. Computed properties control object serialization and caching. They provide meaningful insights into class interdependencies. Finally, computed properties are easy to test.
Note. This post is moved to Osm Framework documentation.
3 years ago ∙ 2 minutes read
From now on, this website is deployed on push, and by the way, you can easily play with the website copy locally. In the Osm framework, new Osm_Project
application allows reflecting over modules and classes regardless to which application they belong. New experimental project is aimed at quick creation of the Admin UI.
2021 ∙ September ∙ Osm Framework
3 years ago ∙ 2 minutes read
Osm Framework uses Monolog library for logging. Use standard loggers defined in the $osm_app->logs
object, or add your own. Control logging in the settings.{app_name}.php
and .env.{app_name}
files.
Note. This post is moved to Osm Framework documentation.
3 years ago ∙ 1 minute read
Osm Framework introduced production mode and maintenance mode. osm.software website went live.
3 years ago ∙ 1 minute read
Osm Framework introduced JS controllers, and JS unit tests. osmcommerce.com website project was renamed to osm.software, it finalized the post rendering, and introduced a tool for checking broken links.