Open lcdservices opened 8 years ago
This seems like something that's amenable to divide-and-conquer/incremental progress. Basically, grep the src
for Services::api3
and Services::boot
. For each of the matches, figure out why it's booting and try to craft work-around.
A few examples (first-impressions/recollections):
AddApiCommand
and AddCaseTypeCommand
boot because they need helper functions to correctly format some names. ( civicrm_api_get_function_name()
and CRM_Case_XMLProcessor::mungeCasetype
, respectively.) Since these are small utilities, one could probably just copy the code into civix
; then they don't need to boot.AddCustomDataCommand
really needs to boot and access the database. It reads the live config and exports to a file.AddReportCommand
and AddSearchCommand
don't strictly need a live system... but if you use the --copy
feature, then they do need access to the source tree. They do a boot because this is an easy to get access to the source tree. Find another way to get the source tree?
Civix is a great tool -- the one downside I find is that some of the actions require that a full working site be in place. I don't always build extensions within a full site install, and want the flexibility to be able to create extension elements without that requirement. Some actions will throw errors but still create the element (generate/form/page), others will error and not create the action (api).