Организация ЧПУ в htaccess

imediasun

Новичок
Все стало, написал так
index
PHP:
require_once('Main.php');
$object= new Main();

require_once 'vendor/autoload.php';
$klein = new \Klein\Klein();
$klein->respond('GET', '/users/', function () {
$controller = new \Controllers\Users();
$controller->index();
});
$klein->dispatch();

function index(){
print('index');
}
Users
PHP:
namespace Controllers\Users;

class Users  {

   public function __construct()
   {
   parent:: __construct();
  print('construct');
}

   function index(){
   print('users index');
   }

    function register(){
print('register');
}
Но при обращении site.com/users - пустой экран
так же при обращении к корню и site.com/users/register
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Тваюжмать...

1. Роута для site.com/users/register у тебя просто нет.
2. Наследования нет, но ты вызываешь parent::__construct
3. Зачем там require для Main.php, если я уже писал, блин, прочитать про composer.
4. Нахрен тебе вообще Main, если в примере у тебя он нигде не используется.

Ты вообще рерайты то включил для хоста в апаче (или что там у тебя)?
 

imediasun

Новичок
htaccess
Код:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Как сделать роут на /users/register типа controller/action
Композер свое дело сделал че про него читать
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ты не понимаешь, как написать адрес /users/register вместо /users ?
Composer еще помимо всего - позволяет тебе СВОИ классы подгружать автоматом
 

imediasun

Новичок
PHP:
require_once __DIR__ . '/vendor/autoload.php';
$klein = new \Klein\Klein();
$klein->respond('GET', '/users/register', function () {
$controller = new \Controllers\Users\register();
$controller->index();
});
$klein->dispatch();

function index(){
print('index');

}
Ну и че ни к индексу ни к юзерам не могу получить доступ белый экран
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ошибки включи. Я сдаюсь, ты безнадежен
 

imediasun

Новичок
PHP:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ничего
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Извини, не верю, ты создаешь экземпляр несуществующего класса и у тебя "ничего". Забыл небось про composer dump-autoload каждые 5 минут при модификации кода.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Каким коспозером стал класс? У тебя вообще index.php запускается, когда ты запрашиваешь /users/register?
 

imediasun

Новичок
да, но когда я обращаюсь к методам индекса то не могу обратиться
 

WMix

герр M:)ller
Партнер клуба
вот тебе тест без композеров без хтакцессов. остальное сам

test.php
PHP:
echo $_SERVER['REQUEST_URI'];
$ca = explode('/', $_SERVER['REQUEST_URI']);
print_r($ca);
$c = new $ca[2];
$a = $ca[3];
$c->$a();

class Users  {
    function register(){
    print('hallo register');
    }
}
http://localhost/test.php/Users/register
 

imediasun

Новичок
/test.php/users/registerArray ( [0] => [1] => test.php [2] => users [3] => register ) hallo register
а там что хэдером?
так это класс в индексном файле
 

fixxxer

К.О.
Партнер клуба
Да пусть и автолоадер свой напишет, ему полезно ;)
Разобраться с __autoload и прочими spl_autoload_register - ему полезно, да.

@imediasun
Ты сейчас занимаешься тем, что называется Cargo cult programming =)
Надо не копипастить строчки кода, которые магически что-то там сделают, а разбираться в каждой, как она работает и зачем.
Ты слишком со сложного начал для тебя на этом этапе. Рано еще. Возьми тот же учебник Котерова PHP5 и изучай последовательно, пиши простые скриптики.
 
Сверху