Начинаещи: require() и include()

Така… това го пиша, защото в последните две седмици ме попитаха 3 пъти за това нещо и явно, че хората не го знаят или по-скоро не правят разлика между двете функции. Разлика има и то съществена. Това, което прави двете функции толкова различни, че require() генерира fatal error, а include() ще генерира warning. С други думи при първото положение страницата няма да се отвори, а при второто ще се изпише само грешка на съответното място и останалата част от страницата ще се покаже. Практиката е следната, всички файлове, коит са от съществено значение за страницата, например бази данни, логини, пароли и всичко, без което сайтът ви не може да съществува и функционира правилно, то тогава се използва require(). При всички останали положение include(). Да речем че имате скрипт, който ви показва последните tweetове, за него ще е добра практика да го include-нете, защото и без него сайтът ви ще е ОК. Но ако имате db.inc.php съдържащ функции за връзка с базата данни, най-добре би било да го require()-нете. Просто е, макар и реално начинаещите да не виждат голям смисъл в тази разлика, но с практиката ще се убедите, че и двете функции са полезни и най-вече на места изключително нужни.

N.B.!! Във всички версии преди 4.0.2 всички файлове които се require()-ват трябва да са достъпни, без значение дали редът се изпълнява или не се изпълнява. Да речем, че имате IF условие, което не е истина в дадение случай, но въпреки това, файлът, който require()-вате трябва при всички положения да е достъпен иначе ще получите fatal error и страницата няма да се изпълни. След 4.0.2 всичко вече е ок, но ако при някакво стечение на обстоятелствата пишете на по-предишна от гореспоменатата версия, го имайте на предвид.

Малко в детайли и тънкости – include() е по бърз от двете функции, но пък може да ви създаде големи главоболия. Аз лично съветвам да се ползвате require() навсякъде, където е необходимо, което е в 90% от положенията, като не се притеснявайте чак толкова много за бързодействието, разликата е минимална.

Между другото днес официално направих първия проект – визуалната част на клиентски сайт посредством CodeIgniter и останах колкото доволен, толкова и разочаровн. Доволен от бързината на писане на код и от сравнително големите възможностите на фреймуорка. Разочарован – защото борбата с url адресите е повече от сериозна и се налагат доста хватки за да постигнете желания ефект, който цели един SE оптизатор – като при едно положение така и не разбрах как точно да направя това, което искам, освен на ръка, което си е… недопустимо, защото може и да не знам кое точно трябва да се пренапише в определената ситуация, и то не от незнания, а от динамични възможности на cms-а, а и във форума на CodeIgniter не се намери, кой да ми помогне, май сериозни ги затапих и хвърлих в размисли :D . Общи впечатления и оценка: 5 от 6, наистина има какво още да се желае за да го провъзглася за ултимално решение.

И един въпрос към всички хостинг доставчици – как може да няма един Ruby хостинг в България?!?!?!?!?!?!?!? В праисторическата ера ли живеем или е 2009та година??

След малко по сериозно ровене и малко повече търсене (по блоговете, в серп нищо не се намери) се оказа, че icn и space.bg поддържат Ruby. С извинения за прибързаните изводи! Утре земем от space.bg пък да видим…. Благодарение на този чуден сайт се образовах, за което благодаря :)


Дискусия

  1. Марио Пешев 1 юни 2009

    Comment Arrow

    Ruby on Rails: http://www.bgonrails.com/

    Не съм тествал, де.

    ОтговорОтговор

  2. admin 1 юни 2009

    Comment Arrow

    Аз на спейса се спрях, изглеждат най-надежни. Ще ги видиме как са

    ОтговорОтговор

Публикувай коментар (dofollow)

  • Author Avatar

    ТИ :)