Where to place general global variables? |
[eluser]chefnelone[/eluser]
Hello, I use to create some variables which are available in the entire app. As a example: $clientsEmail = '[email protected]'; $contactFormEmail = '[email protected]'; I simply create these vars in php file: myVars.php , and then I include this file in the header of every page. But I'm sure that CI offers a cleaner way to do this to avoid including files. I mean, creating those vars in config.php or autoload.php, etc. How do you do this?
[eluser]Ki[/eluser]
I have had the same problem - I had variables + DB requests that needed to be defined on every page. To accomplish this I have created My_controller (as suggested by multiple CI posts). All other controllers extend My_controller instead of Controller. This way, My_controller holds everything that needs to be done for every page on the site. If you have a section that does not need that stuff, simply extend Controller. As for variables that are used everywhere, I simply defined them in My_Controller as constants. If you want to define variables that are defined regardless of My_controller or controller being loaded, you may look into hooks, or define them in your config.php - but that is a it controversial
[eluser]ciGR[/eluser]
Have you see that http://ellislab.com/codeigniter/user-gui...onfig.html
[eluser]JoostV[/eluser]
1. Store them in a custom config file as $config['clientsEmail']; and so on. 2. Store the custom config file in the config folder under a custom name 3. Load the custom config file and call the settings Code: $this->config->load('myconfigfilename'); Its all in the user guide
[eluser]chefnelone[/eluser]
Since I'll need the variables everywhere at everytime, I think that a custom config file can do it. The user guide is quite clear about how to do it, but.. can a config file load data from a database?... If not, I might look for a 'hook' to do this.
[eluser]Zeeshan Rasool[/eluser]
Not sure about dynamic data from db to config but may be possible if we create a CI instance as we create in libraries or in hooks. You can also create a custom config type file in which you declare all your variables and just called them any where with: $this->config->load('email');
[eluser]Ki[/eluser]
I don't mean to be repeating what I mentioned earlier, but if you load info from database, why don't you use My_controller to load everything you need for every page? It seems to be the common solution judging by the posts...
[eluser]chefnelone[/eluser]
[quote author="samota" date="1266715168"]I don't mean to be repeating what I mentioned earlier, but if you load info from database, why don't you use My_controller to load everything you need for every page? It seems to be the common solution judging by the posts...[/quote] I think that since a controller can't be autoloaded it isn't a good option for what I need. I need the variables available everytime/everypage.
[eluser]Ki[/eluser]
[quote author="chefnelone" date="1266802139"][quote author="samota" date="1266715168"]I don't mean to be repeating what I mentioned earlier, but if you load info from database, why don't you use My_controller to load everything you need for every page? It seems to be the common solution judging by the posts...[/quote] I think that since a controller can't be autoloaded it isn't a good option for what I need. I need the variables available everytime/everypage.[/quote] If you create My_controller, will just extend it every page instead of the Controller. This way you do not have to load library/model in every controller. Best of luck! |
Welcome Guest, Not a member yet? Register Sign In |