For 2023 (and 2024 ...) - we are now fully retired from IT training. We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here)) |
CodeIgniter - an excellent PHP framework with an easy start point
Frameworks are such a valuable tool to help you write a web application - they provide the common structure that you need in most applications in addition to the web server itself, and into which you can write your own application specific code. But there's often a steep learning curve with a framework, and a bloat which means that you end up wit something that works, but works far less efficiently than code written without a framework.
Under PHP, I've done quite a bit of work over the last few months with the Zend Framework, but flavour is this month from a training viewpoint seems to be CodeIgniter by Ellis Labs. It's an easy download, unpack it to get it working and "Hello World" can be implemented very quickly with a template of your web page filled in by the controller in just a few file changes. I'm impressed!
-bash-4.1$ diff -r vanilla/public_html/ public_html
Only in public_html/application/controllers: mycontroller.php
Only in public_html/application/views: pages
Only in public_html/application/views: templates
Only in public_html: .htaccess
Only in public_html: index.html
-bash-4.1$
As with any system that's documented online, the EllisLabs / manaual pages have - even at the beginning - lots of ifs, buts can caveats, so I thought I would include the final content of the six files I added ( nothing changed) to make this work.
My first example produces:
Here are the file contents:
index.html - to provide a home page outside the CodeIgniter tests
<html>
<head><title>Consultations dot org dot uk</title></head>
<body><h1>Currently a test site!</h1>
In use by <a href=http://www.wellho.net>Well House Consultants</a> for our training courses
</body>
</html>
.htaccess - to reroute everything else to CodeIgniter
RewriteEngine on
# Route home page to "locked out" special front page
RewriteRule ^index.htm index.html [L]
RewriteRule ^$ index.html [L]
# Send all running pages except index.php, robots.txt and the user guide to index.php
RewriteCond $1 !^(index\.php|images|robots\.txt|user_guide)
RewriteRule ^(.*)$ /index.php/$1 [L]
application/controllers/mycontroller.php - to provide a first controller
<?php
class Mycontroller extends CI_Controller {
public function view($page = 'home') {
$data = array('title' => "showing CodeIgniter");
$this->load->view('templates/header', $data);
// $this->load->view('pages/'.$page, $data);
$this->load->view('pages/main', $data);
$this->load->view('templates/footer', $data);
}
}
application/views/pages/main.php - to provide the view called up by that controller
[[Content here]]
application/views/templates/header.php - to provide the header used by all views
<html>
<head>
<title><?= $title ?> - Well House Tutorial</title>
</head>
<body>
<h1>Teaching you to write excellent PHP - <?= $title ?></h1>
<i>This is the header</i>
<hr />
application/views/templates/footer.php - to provide the footer used by all views
<hr /><i>This is the footer</i><br /><br />
<?php date_default_timezone_set('Europe/London'); ?>
<a href=http://www.wellho.net>Well House Consultants</a>
- <strong>©<?= date("Y") ?></strong>
</body>
</html>
Frameworks become more and more important in PHP development and in my "best practise" module on all PHP courses I now talk about Router / Model / View / Controller, and I can cove off examples as required. At present, CodeIgniter is just a formal quick demo - but I'm happy to be kept talking about it after the course, and to include it in private courses.
Source code links for the files used above:
Controller - [here]
Main view - [here]
Header - [here]
Footer - [here]
.htaccess for routing changes - [here]
dummy front page - [here] (written 2013-04-06, updated 2013-04-13)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles H321 - PHP - CodeIgniter [4053] Frameworks - learning through exploring and understanding data sources - (2013-03-27) [4062] Sessions, forms and validation in CodeIgniter - early examples - (2013-04-13) [4114] Teaching CodeIgniter - MVC and PHP - (2013-06-12)
Some other Articles
Apache httpd - a robust, open source web serverBackups by crossover between network centres - setting up automatic scp transfersSeamless, integrated IT - we have a long way to go!CodeIgniter - an excellent PHP framework with an easy start pointCurl and curling from PHPThe highs and lows of customer service - CheltenhamstdClass in PHP - using an object rather than an associative arrayAn overpractical test of our backup strategy!Using web services to access you data - JSON and RESTful services
|
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|