Download the PHP package log1x/acf-composer without Composer
On this page you can find all versions of the php package log1x/acf-composer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download log1x/acf-composer
More information about log1x/acf-composer
Files in log1x/acf-composer
Package acf-composer
Short Description Create fields, blocks, option pages, and widgets using ACF Builder and Sage 10
License MIT
Informations about the package acf-composer
ACF Composer
ACF Composer is the ultimate tool for creating fields, blocks, widgets, and option pages using ACF Builder alongside Sage 10.
Features
- 🔥 Encourages clean structuring for creating fields with Sage 10 and ACF.
- 🔥 Instantly generate working fields, blocks, widgets, and option pages. Batteries included.
- 🔥 Instantly generate re-usable field group partials.
- 🔥 Blocks and widgets are fully rendered using Blade with a native Sage 10 feel for passing view data.
- 🔥 Blocks are automatically generated with
<InnerBlocks />
support. - 🔥 Automatically hooks widgets with
WP_Widget
making them instantly ready to use. - 🔥 Automatically sets field location on blocks, widgets, and option pages.
- 🔥 Globally set default field type and field group settings. No more repeating
['ui' => 1]
on every select field.
Requirements
Installation
Install via Composer:
Usage
Getting Started
Start by publishing the config/acf.php
configuration file using Acorn:
Generating a Field Group
To create your first field group, start by running the following generator command from your theme directory:
This will create src/Fields/Example.php
which is where you will create and manage your first field group.
Taking a glance at the generated Example.php
stub, you will notice that it has a simple list configured.
Proceed by checking the Add Post
for the field to ensure things are working as intended – and then get to work.
Generating a Field Partial
A field partial consists of a field group that can be re-used and/or added to existing field groups.
To start, let's generate a partial called ListItems that we can use in the Example field we generated above.
Looking at ListItems.php
, you will see out of the box it consists of an identical list repeater as seen in your generated field.
A key difference to note compared to an ordinary field is the omitting of ->build()
instead returning the FieldsBuilder
instance itself.
This can be utilized in our Example field by passing the ::class
constant to ->addPartial()
:
Generating a Block
Generating a block is generally the same as generating a field as seen above.
Start by creating the block field using Acorn:
You may also pass --construct
to the command above to generate a stub with the block properties set within an attributes
method. This can be useful for localization, etc.
When running the block generator, one difference to a generic field is an accompanied View
is generated in the resources/views/blocks
directory.
Like the field generator, the example block contains a simple list repeater and is working out of the box.
Block Preview View
While $block->preview
is an option for conditionally modifying your block when shown in the editor, you may also render your block using a seperate view.
Simply duplicate your existing view prefixing it with preview-
(e.g. preview-example.blade.php
).
Generating a Widget
[!IMPORTANT] With WordPress 5.8, Blocks can now be used as widgets making this feature somewhat deprecated as you would just make a block instead.
If you are on the latest WordPress and would like to use the classic widget functionality from ACF Composer, you will need to opt-out of the widget block editor.
Creating a sidebar widget using ACF Composer is extremely easy. Widgets are automatically loaded and rendered with Blade, as well as registered with WP_Widget
which is usually rather annoying.
Start by creating a widget using Acorn:
Similar to blocks, widgets are also accompanied by a view generated in resources/views/widgets
.
Out of the box, the Example widget is ready to go and should appear in the backend.
Generating an Options Page
Creating an options page is similar to creating a regular field group in additional to a few configuration options available to customize the page (most of which, are optional.)
Start by creating an option page using Acorn:
Optionally, you may pass --full
to the command above to generate a stub that contains additional configuration examples.
Once finished, you should see an Options page appear in the backend.
All fields registered will have their location automatically set to this page.
Caching Fields
Each time your application is ran, ACF Composer has to build your field groups into an array to register with ACF. In larger projects, it may be a good idea to cache the field groups into an array during deployment. This can be done using the acf:cache
command:
Cache can then be cleared using the acf:clear
command:
Custom Stub Generation
To customize the stubs generated by ACF Composer, you can easily publish the stubs
directory using Acorn:
The publish command generates all available stubs by default. However, each stub file is optional. When a stub file doesn't exist in the stubs/acf-composer
directory, the default stub provided by the package will be used.
Default Field Settings
One of my personal favorite features of ACF Composer is the ability to set field type as well as field group defaults. Any globally set default can of course be over-ridden by simply setting it on the individual field.
Global
Taking a look at config/acf.php
, you will see a few pre-configured defaults:
When setting trueFalse
and select
to have their ui
set to 1
by default, it is no longer necessary to repeatedly set 'ui' => 1
on your fields. This takes effect globally and can be overridden by simply setting a different value on a field.
Field Group
It is also possible to define defaults on individual field groups. This is done by simply defining $defaults
in your field class.
My Defaults
Here are a couple defaults I personally use. Any prefixed with acfe_
are related to ACF Extended.
Bug Reports
If you discover a bug in ACF Composer, please open an issue.
Contributing
Contributing whether it be through PRs, reporting an issue, or suggesting an idea is encouraged and appreciated.
License
ACF Composer is provided under the MIT License.