URL helper
There are 3 shortcut functions which you can use:
url();
echo url('/about/');
/about/
echo url('/about/', array('name' => 'Craig'));
/about/?name=Craig
echo url('/about/:page/', array('page' => 'contact', 'name' => 'Craig'));
/about/contact/?name=Craig
echo url('./history/');
/about/history/
http_url();
echo http_url('/about/');
https://www.example.com/about/
You can view the source on GitHub.
Parameters
If the same base url will be used with different parameters, try:
$edit_url = url('/admin/edit/');
echo $edit_url->get(array('id' => 15));
Individual parameters can be set in a number of ways, for example:
$test_url = url('/path/:a/', array('a' => 1, 'b' => 2));
$test_url->param_set('c', 3);
$test_url->param_set(array('d' => 4, 'e' => 5));
echo $test_url->get(array('f' => 6));
URL Setup
If your not using the http_url() helper function, you can also require a 'full' url via:
$home_url = url('/');
$home_url->format_set('full');
Or set a the scheme (implying a full url) with:
$home_url = url('/');
$home_url->scheme_set('https');
Likewise the different component parts can be set/retrieved with:
$test_url = url('/path/', array('a' => 1, 'b' => 2));
$test_url->path_set('/path/');
$test_url->path_get();
$test_url->host_set('example.com');
$test_url->host_get(); // Not normally used, see config::get('output.domain')
$test_url->param_set('c', 3);
$test_url->param_set(array('d' => 4, 'e' => 5));
$test_url->params_get();
Site config
url.default_format
absolute = default
full = includes domain
relative = not implemented yet
url.prefix
Prefixed onto any absolute urls, for example:
config::set('url.prefix', '/en');
echo url('/about/');
/en/about/