Welcome Guest, Not a member yet? Register   Sign In
Variables
#1

hi everybody, I'm new to CodeIgniter and I am having an issue that i can't solve.. I got a cms to optimise and there is file views/templates/file.php and it echo.es some $variable. I''m struggling few days now to find where is that variable defined, which controler is in charge for that variable, and so on.
My question is where could iti be stored, there is not require or include, there is not passed data via $this->load->view($view, $data) anywhere..
Reply
#2

(This post was last modified: 02-18-2015, 08:42 AM by CroNiX.)

if the view file is named "some_view.php", then use your IDE's search function to search for 'some_view' (without the .php). You'll most likely find a controller (could be a library or elsewhere as well) that is doing something like:
$this->load->view('some_view');

But don't search for that entire specific line...just the name of the view file. You don't know if there is a custom function used to load the view, so the syntax can't be guaranteed. But if you just search for the filename itself without .php, your IDE should find it easily.
Reply
#3

I already tried that, but I can't find it. Thanks for trying to help anyway =D
Reply
#4

It could be a variable that's being created dynamically. SeeĀ variable variables in PHP.
PHP Code:
<?php
$a 
'hello';
$
$a 'world';
var_dump ($a$hello);
?>

The result is:
string 'hello' (length=5)
string 'world' (length=5) 
The variable $hello was created but you never see it being created. This is why many PHP programmers say it's not a good practice. It can make debugging difficult.

But I don't know that this is what's going on in the code you're working on. I would first search the entire project for that variable. Some editors allow you to search all files in a project, or all files in a folder. If nothing else, you can download and install Agent Ransack, an excellent free file search application. An editor with a debugger would help too.
Hey, don't work without a PHP debugger. Several free IDEs have this features built in. Two are NetBeans and CodeLobster. Without a debugger, it's like you're driving with a blindfold on -- you are going to crash!
Reply
#5

In general, start with the URL of the page, break it down into its parts, then check the routes. For example, if the page is http://yoursite.com/controller/action/value or http://yoursite.com/index.php/controller/action/value, you check the /application/config/routes.php file for 'controller/action' (or something similar, see the CI documentation for routing rules if you see something you don't understand).

If there is a rule in place, look up the appropriate controller according to the route. If there is not one in place, look up the controller in the first part of the URL ('controller' in the above example), usually under /application/controllers/.

Inside that controller will usually be a method (function) named for the action defined via the route or the URL. If you can't find this method, or the controller uses a special method, like _remap(), and you don't understand what's going on, check the CI documentation for controllers (and remapping function calls).

Usually the variable will be defined within that method or in some code called directly by that method, but a more complicated application may include a template library (which appears to be the case from the directory name for the view) or some other method of defining more complicated views. In these cases, variables may also be defined in the template library, a base controller, or even another view. If no documentation is available for the application, it's usually best to trace through the application until you gain a more thorough understanding of its behavior.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB