Skip to main content

Setting up PHP CodeIgniter

I like to tweak CodeIgniter beyond what the common settings are. There are a few quirks here and there that I sometimes wish were native features of CodeIgniter. Some internal settings make it seem like they are going to work but then you realize that they just don't work the same across all servers. So, here's my CodeIgniter setup.

First thing, of course, is to download CodeIgniter and extract it to the folder location where you'll be using it from. Visit that directory in your browser and you'll notice that CodeIgniter is setup and ready to go. That's it! Simple, right?

To make most out of CodeIgniter you'll want to keep reading.

First, open application/config/routes.php and modify the $route['default_controller'] element. I normally change mine to main. Open the application/controllers/ directory and rename the Welcome.php file to Main.php. Open the Main.php file and change the class name from Welcome to Main. Test to make sure it's working.

Next, I remove the index.php from the address bar. You can follow my tutorial here.

Next is setting up the config.php file. I've tried left and right to work with the ENVIRONMENT global, but it just misbehaves across different servers. The main goal that I'm trying to achieve is to figure out if I'm on the production server or development server automatically. So, instead of using the ENVIRONMENT global, I'll use $_SERVER["HTTP_HOST"]. In the config.php file, I'm just trying to modify the $config['base_url'] element. Here's the code I use to achieve that:

// Initialize to production server
$config['base_url'] = 'https://dinocajic.com/some_application_folder';

if ($_SERVER["HTTP_HOST"] == "localhost") {
        // If developing, change to local folder
        $config['base_url'] = 'http://localhost/fcwt_local_folder';
}

While I'm in the config file, I'll make sure that $config['uri_protocol'] is set to 'REQUEST_URI.' 

Next, I'll open the application/config/autoload.php file. I'll modify the following elements so that certain libraries are auto-loaded:

  • $autoload['helper'] = array('url');
  • $autoload['libraries'] = array('database');
Those two I always auto-load. Often, I'll load other libraries once I find it necessary.


Last but not least is the database.php file. When you open it up, you'll notice a $db['default'] element holding the connection settings. I'll set this to my production server. Next, I'll copy the $db['default'] array and paste it immediately below the default one. I'll change the key from default to development: $db['development'] = array(...). I'll fill out my local server connection settings. Last but not least is to modify the $active_group variable; it tells CodeIgniter which database settings to use. The code that I use to change between the default and development settings is as follows:

// Production settings
$active_group = 'default';

if ($_SERVER["HTTP_HOST"] == "localhost") {
        // If on localhost, change to development
        $active_group = 'development';
}

And that's it. From there I'll start creating the new controllers, views and models.

Comments

Popular posts from this blog

Beginner Java Exercise: Sentinel Values and Do-While Loops

In my previous post on while loops, we used a loop-continuation-condition to test the arguments. In this example, we'll loop at a sentinel-controlled loop. The sentinel value is a special input value that tests the condition within the while loop. To jump right to it, we'll test if an int variable is not equal to 0. The data != 0 within the while (data != 0) { ... } is the sentinel-controlled-condition. In the following example, we'll keep adding an integer to itself until the user enters 0. Once the user enters 0, the loop will break and the user will be displayed with the sum of all of the integers that he/she has entered. As you can see from the code above, the code is somewhat redundant. It asks the user to enter an integer twice: Once before the loop begins, and an x amount of times within the loop (until the user enters 0). A better approach would be through a do-while loop. In a do-while loop, you "do" something "while" the condition

Programming Language Concepts Test Questions/Answers

One of the easiest methods that I use to learn new topics is by creating notes on the subject and then by turning those notes into questions and answers. Remembering answers to questions just seems more natural. I was able to memorize 323 questions and answers in a matter of a couple of days. I wanted to start doing this for some topics that I find pretty interesting. To begin, here are some questions and answers to Programming Language Concepts (PLC). I'm reading your mind right now and the answer is yes, there will be more. 1. Name 3 reasons for studying PLC. - Better understanding of current programming languages - Advancement of computing - Increased capability to express ideas - Increased capability to learn new programming language. - Better understanding of which programming language to choose.  2. Name the 5 programming domains and languages best suited for each. - Scientific (Fortran, ALGOL 60) - Business (COBOL) - AI (Lisp, Scheme, Prolog) - Web (PHP,

Creating your own ArrayList in Java

Wanted to show that certain data structures in Java can be created by you. In this example, we'll go ahead and create an ArrayList data structure that has some of the methods that the built in ArrayList class has. We'll create 2 constructors: The default constructor that creates an ArrayList with a default size of 10. Constructor that allows an initial size to be passed to the array. We'll also create a number of methods: void add(Object x);  A method that allows you to place an Object at the end of the ArrayList. void add(int index, Object x);  A method that allows you to place a value at a given location. Object get(int index):  Allows you to retrieve a value of the arrayList array from a given location. int size();  Allows you to get the number of elements currently in the Arraylist. boolean isEmpty();  Tests to see if the Arraylist is empty. boolean isIn(Object x);  A method that sees if a particular object exist in the arrayList. int find(Object x);