As far as I understand, there are two ways of calling C code from zephir. Using the {% %} syntax, or writing an optimizer.

It looks like optimizers are supposed to simply be used for optimization, i.e. speeding up a function call that would otherwise run slower in php. It would take a long while to write an optimizer for each function call I need from the C library. So the other option is to write wrapper classes in zephir and use the CBLOCK syntax to include the C headers, and cblocks inside function bodies to call the C functions?

Am I correct in assuming this, or is zephir not really intended to be used for writing bindings for C/C++ libraries? Are {% %} blocks the best way to write bindings for an external library?