Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Трабл с выносом класса в отдельный файл
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




Собственно существует класс со статическими переменными. Допустим я вставил этот класс в начале файла и сразу же после него идет вызов переменной из этого класса. Решил вынести этот класс в отдельный файл. Вынес! Вместо перед выводом переменной на заинклюдил этот файл и выводит такую бяку:
Цитата
Fatal error: Access to undeclared static property: Core::$var in.......

Когда выводил без подключения класса из стороннего файла все было тип-топ. В файле ничего постороннего нет. Только один класс. В чем может быть проблема?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 28 дней


Цитата
вызов переменной из этого класса.

наверно всё же свойства)
Цитата

Когда выводил без подключения класса из стороннего файла все было тип-топ.


ничё не понял, у тебя ранее авторегистер был?

покажи пример чтоли?


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




index.php
<?php

error_reporting(-1);

define("KEY", true);
define("PATH", $_SERVER['DOCUMENT_ROOT']);

include './system/core.php';


if(Core::$_config['mode'] == 0)
{
ini_set('display_errors', 1);
} else {
ini_set('display_errors', 0);
set_error_handler('Error::PHP');
}

spl_autoload_register('Core::autload');

header('Content-Type: text/html; charset='.Core::$_config['charset']);
setlocale(LC_ALL, Core::$_config['locale']);

mb_internal_encoding(Core::$_config['mb_internal_encoding']);
mb_regex_encoding(Core::$_config['mb_regex_encoding']);

date_default_timezone_set(Core::$_config['timezone']);

session_start();

echo "Hello, world";


core.php
<?php if(!defined('KEY')) {header("Location: /404.html"); die();}

class Core {
public static $_config = array(
'mode' => 0, //0 - developer, 1 - used
'mb_reges_encoding' => 'utf-8',
'mb_internal_encoding' => 'utf-8',
'charset' => 'utf-8',
'locale' => 'ru_RU.UTF-8',
'time_zone' => 'Europe/Moscow',
'default_tpl' => 'main.tpl',
'DRIVERS' => array(),
'MODULES' => array(),
'PAGES' => array(
'messages',
'friends',
'photos',
'jobs',
'work',
'support',
'help'
)
);


public static $var = 'echo';


public static function autoload($classname)
{
$drivers = Core::$_config['DRIVERS'];
$modules = Core::$_config['MODULES'];
if(in_array($classname, $drivers)){
require_once PATH . "/system/drivers/" . $classname . ".php";
}else if(in_array($classname, $modules)) {
require_once PATH . '/system/modules/' . $classname . '.php';
} else {
exit("Error");
}
}
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




??????????????????????
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 623
Пользователь №: 40774
На форуме: 2 года, 2 месяца, 10 дней
Карма: 11




В букве ошибся.
autoload

И еще, возможно, нужно автолоад подключать сразу после того, как заинклюдили файл. Просто, так логичнее, что ли. Но ошибка не в этом.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




Спасибо за найденную ошибку! Исправил. Но проблема не решилась. Все то же самое(
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 12 дней
Карма: 13




Цитата (N0ob @ 18.03.2016 - 00:01)
Fatal error: Access to undeclared static property: Core::$var in.......

Я не увидел у тебя обращения к Core::$var

П.С. У тебя автолоад берет им класса, как имя файла для инклуда. По сути получается если class Core, то Core.php , а у тебя сore.php
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




icedfox вот тут не верно. Сам метод Core::autoload будет реализовывать эту подгрузку классов таким способом. Core::autoload является системным и я его подгружаю в ручную.

Я облегчил код. Сделал как сказал Razzwan
core.php без изменений!
index.php
<?php

error_reporting(-1);

define("KEY", true);
define("PATH", $_SERVER['DOCUMENT_ROOT']);

include PATH . '/system/core.php';
echo class_exists('Core') ? "Yes":"No";
spl_autoload_register('Core::autoload', true, true);


Выдает:
Цитата
Yes
Fatal error: Uncaught exception 'LogicException' with message 'Function 'Core::autoload' not found (class 'Core' does not have a method 'autoload')' in D:\OpenServer\domains\localhost\index.php:10 Stack trace: #0 D:\OpenServer\domains\localhost\index.php(10): spl_autoload_register('Core::autoload') #1 {main} thrown in D:\OpenServer\domains\localhost\index.php on line 10


P.S На серваке стоит PHP 5.6. Вдруг эта информация важна. Я вот и думаю, м.б. в новой версии что то фиксанули, а я теперь косяки найти не могу. Раньше на PHP 5.2 сидел, и сразу на 5.6 перешел. Помощь срочно нужна! Уже какой день на одном косяке стою((((
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 12 дней
Карма: 13




N0ob, в PHP 5.6. идет включенным по умолчанию OPcache , возможно в нем затырка
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SerginhoLD  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



че?
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 716
Пользователь №: 24500
На форуме: 6 лет, 5 месяцев, 3 дня
Карма: 55




N0ob
массивом попробуй

spl_autoload_register(array('Core', 'autoload'), true, true); 


--------------------
"internet explorer всех правильней отображает страницы" ©
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 12 дней
Карма: 13




N0ob, держи index.php
<?php
// добавил ob_start . сам найдешь зачем :)
ob_start();
error_reporting(-1);

define("KEY", true);
define("PATH", $_SERVER['DOCUMENT_ROOT']);

// инклуд лучше делать через полный путь, подумай
include './system/core.php';


if(Core::$_config['mode'] == 0)
{
ini_set('display_errors', 1);
} else {
ini_set('display_errors', 0);
set_error_handler('Error::PHP');
}

//spl_autoload_register('Core::autload');
spl_autoload_register('Core::autoload', true, true);

header('Content-Type: text/html; charset='.Core::$_config['charset']);
setlocale(LC_ALL, Core::$_config['locale']);

mb_internal_encoding(Core::$_config['mb_internal_encoding']);
// переменной Core::$_config['mb_regex_encoding'] нет у тебя
//mb_regex_encoding(Core::$_config['mb_regex_encoding']);
// переменной Core::$_config['timezone'] нет у тебя
//date_default_timezone_set(Core::$_config['timezone']);


session_start();

echo "Hello, world";


Совет.
1. Используй неймспейсы, тебе будет удобнее.
2. Реализацию конфига я бы сделал по другому, что бы была возможность его безболезненно расширять.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




Ребят, я нашел проблему. Там был такой тупой косяк. Я редактировал файл с другого сайта с таким же названием. Он был у меня открыт в редакторе, я его и редактировал sad.gif Извините еще раз.
icedfox
1. Неймспейсы пока не буду трогать, т.к. пока еще с ними еще толком не познакомился да и что то мне кажется это лишние строки кода, не более. ИМХО
2. А вот тут можно по подробней?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 12 дней
Карма: 13




Цитата (N0ob @ 22.03.2016 - 02:09)
2. А вот тут можно по подробней?

Получай данные конфига через метод, а методе уже можешь реализовывать любую логику формирования данных ,которые отдавать.
Это позволит тебе безболезненно использовать зависимости, условия выборок и т.д.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 799
Пользователь №: 37078
На форуме: 3 года, 11 месяцев, 22 дня
Карма: 13




icedfox если честно раньше так и делал. Щас у инпоста в его уроках посмотрел такую реализацию, и решил попробовать ) Вроде как приемлема)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Razzwan  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Землянин
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 623
Пользователь №: 40774
На форуме: 2 года, 2 месяца, 10 дней
Карма: 11






--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса