Jump to content

Fenix

User
  • Posts

    341
  • Joined

  • Last visited

Posts posted by Fenix

  1. Есть три класса: Controller, Loader, test_module.

    class Controller {

    function __construct(){
    $this -> load = new Loader()
    }

    }

    class Loader {

    function module($module){
    require_once (SYSTEM."/modules/".$module.".php");
    //создание объекта
    }

    }

    Как видете, свойство load класса Controller - это объект класса Loader.

    К классе Loader нужно создать функцию, которая будет загружать указаный в параметре модуль и создавать свойство в классе Controller с именем модуля и помещать туда объект класса модуля. Имя файла и имя класса одинаковы.

    Все это надо, чтобы в классах, расширяющих класс Controller, былы доступны конструкции вида:

    $this -> load -> module("capcha");
    $this -> capcha -> print_capcha_img();

  2. Сервер, судя по названию =)

    Хотя, и на десктопе можно поставить LAMP, если есть желание комп еще как-неть использовать. А вот наоборот малость сложнее.

    Я на виртуальную машину ставлю. Если тоявиться желание как-нибудь по другом использовать убунту, то дескпот версию могу доставить

  3. Дано: ubuntu desktop edition и ubuntu server edition

    Назначение: тестовый сервер с php и mysql

    Какая версия лучше для этого назначения?

  4. ИМХО, сделать финальный класс контроллер, в котором все будет собираться, т.е. остальные классы являются не зависимы.

    писал, писал очень много писал, передумал, удалил все :)

    Можно поподробнее

  5. Решил написать свой фреймворк и столкнулся с проблемой структуры классов. Подумал над этим и придумал такие варианты:

    1. С наследованием. Каждый класс насследует базовый класс (класс фреймворка) или другой класс, который также наследует базовый класс. Тоесть образуется некое дерево, которое связывает все классы с базовым классом.

    2. Без наследования. Каждый клас существует по отдельности, независя от других классов. Наследование есть только в контроллерах и

    моделях, которые наследуют главный класс контроллера или модели.

    Какой лучше не знаю. Подскажите что лучше или предложите свой вариант

  6. При попытке соединения с базой выводится следуюющее:

    Could not connect: mysqlnd cannot connect to MySQL 4.1+ using old authentication

    Код:

    $connect = mysql_connect($this -> db_hostname, $this -> db_username, $this -> db_password) or die("Could not connect: " . mysql_error()); 
    print ("Connected successfully");
    mysql_close($link);

    Что это значит и как это исправить.

  7. Наверное денег дал.

    Мне есть куда потратить деньги.

    а как получил? Расскажи подробно и обстоятельно.

    Очень просто. День думал над темой, полчаса писал статью и опубликовал в песочницу, за что мне дал инвайт совершенно незнакомый человек, с которым я не общаюсь, причем совершенно бесплатно. Захотел, добился.

  8. Собственно, может кто-нить поделится инвайтом? Постоянно читаю, вот, захотел поучаствовать в комментировании...

    Статьи писать не умею (да и не могу придумать, о чём) - поэтому просто прошу =)

    и мне инвайт! ^_^

    на работе в последнее время только и делаю что хабр читаю.

    И что? Я тоже не умею писать статьи. И что дальше? Я же всеравно получул инвайт, причем не по блату, а заработал.

  9. Разбери этот пример:

    $info = " http://my_site.ru/test1/test2 ";
    $url2 = explode("/", $info);
    echo $url2[1];

    Переменной $info мы присвоили некое строковое значение, пусть это будет урл для наглядности.

    Через explode("/", $info); мы разбиваем эту строку ориентируясь на слеши (по слешам "/"), так же можно по другим знакам, типа: " " - пробел, ":" - двоеточие и т.д..., затем результат (массив с результатом) присваиваем некой переменной $url2.

    Ну а далее, мы получили массив и можем по ключу извлечь нужный нам отрывок (фрагмент) строки: echo $url2[1];

    А что надо eписать в .htaccess чтобы он не искал файл http://my_site.ru/test1/test2/index.php , а направлял все надросы на http://my_site.ru/index.php ипри любом доменном имени.

    Все, написал.

    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]

  10. Что именно не понял?

    Давай конкретный пример и разберем его.

    Я вообще не понял что такое эксплоуд.

    Что именно не понял?

    Давай конкретный пример и разберем его.

    Я вообще не понял что такое эксплоуд.

  11. Потому что модреврайт и эксплоуд решают данную задачу на ура. А если еще и почитать, что в php можно вызывать метод, название которого записано в переменной, то данный вопрос вообще не возникнет. :)

    Что такое эксплоуд? Искал, не находит.

  12. Может парсинг?

    Незнаю как сказать. Допустим если послали такой адресс:

    http://example.com/blog/post/123

    то исполнится функция post, контроллера blog, и выведется пост с id=123

    Ёще пример:

    http://example.com/shop/product/5/123/

    то исполнится функция product, контроллера shop, и выведет продукт с id=123 из категории с id=5

    Т.е. это довольно сложная штука.

  13. Решение принято - писать. Мне уже надоело разбираться с CodeIgniter, который нехошет соединяться с базой при правильных данных.

    Есть вопрос к програмистам на этом форуме. Кто-нибудь хочет помочь? Существуют такие вещи, без которых приложение работало бы, но с ними работает лучше. Например, роутинг. Такие вещи я сам не сделаю. Кто-нибудь хочет помочь?

  14. @fenix, контроллер пишется с двумя ll, controller — регулятор, управляющее устройство

    знаю

    Час пришел со школы и решил почитать "умную" книжку. Случайно открываю главу про юнит-тесты и вижу код:

    class ValidatorTest extends PHPUnit_Framework_TestCase{
    //...
    public function testValidate_FalsePass(){
    $store = $this -> getMock("UserStore");
    $this -> validator = new Validator($store);
    $this -> validator -> validateUser("bob@example.com", "wrong");
    }
    //...
    }

  15. Ну походу она содержит не имя класса, а экземпляр класса, т.е. сам объект.

    Только я не понимаю почему не записать так:

    class SomeClass extends SomeOtherClass {
    public function someMethod() {
    $someData = 'some data';
    return $someData;
    }
    }

    class SomeOtherClass {
    public function someOtherMethod() {
    $someData = 'some data';
    return $someData;
    }
    }

    $obj = new SomeClass();
    $SomeClass->someOtherMethod();

    ??? Знатоки, объясните я вообще прав или нет в своих рассуждениях? И почему нельзя сделать через extends?

    Незнаю... Я сделал такие выводы посмотрев на этот код:

    $page_controler = new $controller();
    $page_controler -> $action();

  16. А... Я кажется понял...

    $this->load->model('blog')

    $this->load - это переменая load этого класса которая содержит имя класса где есть функция model.

    Например:

    Если $this->load = "loading" то выполняется loading->model('blog'), так?

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy