[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AdcAutoloader.php
Страницы: 1, 2, 3, 4
Oyeme
Цитата
SR-4 запрещает эксепшены в автолоадерах


Не думали ли Вы об том что бы сначало проверить все на наличие файлов,а токо потом уже все что все success файлы загружать в автолоудер?
OleKh
Цитата (twin @ 9.10.2015 - 02:16)
Цитата (OleKh @ 8.10.2015 - 19:33)
autoloader не запустит фреймворк, а сделает попытку загрузить неопределенный класс

Почитай вот тут, а потом вот тут.

А потом попробуй так:
$obj = new \core\config();

Чесслово) cчитал что autoloader рекурсивно обходит вложенные папки и инклудит файлы с классами, а получается что в этом примере инклудятся только классы в папке vendor и попытка добавить namespace core в класс config выдает тот же результат и на autoloader никак не влияет.

Т.е. почему не инклудится класс vendor/abc/core/config/config.php ?

 $obj = new \core\config(); //PHP Fatal error:  Class 'core\config' not found in .../autoloader.php on line 34


config.php
namespace core;
class config {}
twin
Цитата (Dezigo @ 9.10.2015 - 08:09)
И смело переименовываем переменные с underscore.

С какого перепуга? Где тут хоть намек на camelCase?
Цитата
4.2. Properties

Visibility MUST be declared on all properties.

The var keyword MUST NOT be used to declare a property.

There MUST NOT be more than one property declared per statement.

Property names SHOULD NOT be prefixed with a single underscore to indicate protected or private visibility.

A property declaration looks like the following.
Ты может перевел неправильно. Нельзя начинать переменную с подчеркивания

$_base_dir


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (OleKh @ 9.10.2015 - 08:21)
Т.е. почему не инклудится класс vendor/abc/core/config/config.php ?

Так правильно немспейс пропиши:
$obj = new \core\config\config();


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
OleKh
Цитата (twin @ 9.10.2015 - 10:25)
Так правильно немспейс пропиши:

$obj = new \core\config\config();


у меня было правильно, IDE находит класс, но не подгружает аутолоадер

даже изменил неймспейс на \core\config\

PHP Fatal error:  Class 'core\config\config' not found in .../autoloader.php on line 34
twin
Цитата (Oyeme @ 9.10.2015 - 08:11)
Не думали ли Вы об том что бы сначало проверить все на наличие файлов,а токо потом уже все что все success файлы загружать в автолоудер?
Вот в этом я никогда не видел смысла. Совершенно пустой и излишний функционал. Проверяем один раз, потом скрипт будет впустую проверять десять лет. И жрать ресурс. Это сколько обращений к ФС надо, почем зря.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (OleKh @ 9.10.2015 - 08:30)
у меня было правильно, IDE находит класс, но не подгружает аутолоадер

Потому что он сам должен лежать в ядре.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Oyeme
Цитата (twin @ 9.10.2015 - 08:36)
Цитата (Oyeme @ 9.10.2015 - 08:11)
Не думали ли Вы об том что бы сначало проверить все на наличие файлов,а токо потом уже все что все success файлы загружать в автолоудер?
Вот в этом я никогда не видел смысла. Совершенно пустой и излишний функционал. Проверяем один раз, потом скрипт будет впустую проверять десять лет. И жрать ресурс. Это сколько обращений к ФС надо, почем зря.

Чтобы видеть что не загрузилось. wink.gif

2015 год.Телефоны с 8gb пямяти.О чем речь laugh.gif
Dezigo
Цитата
Ты может перевел неправильно. Нельзя начинать переменную с подчеркивания

Я использую теже правила стандарта к symfony, иначе выглядит убого - как хочешь так и называй с underscore, или без. Как попало будет.

http://symfony.com/doc/current/contributin.../standards.html

Naming Conventions¶

Use camelCase, not underscores, for variable, function and method names, arguments;
twin
Dezigo
Ну это дело привычки. Мне верблюжий стиль в переменнх не нравится потому что однотипно с методами.

PSR выбор стиля написание переменных оставил на откуп программистов. Главное, чтобы в одном стиле все писали. Если больше привычно camelCase, мне переназвать не сложно. Всё для людей. smile.gif К тому же кода всего пара сотен строк.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Oyeme @ 9.10.2015 - 08:44)
Чтобы видеть что не загрузилось.

Кто это увидит на действующем сайте? Юзер? biggrin.gif Этот функционал нужен только для инсталлятора. А это последний пункт в моем плане.
Цитата
2015 год.Телефоны с 8gb пямяти.О чем речь
Тут дело принципа. Вот не хочу я ничего лишнего. Хоть какие там телефоны.

Ты не работаешь с шаредами просто наверное, и не знаешь, что там ресурс ограничивают. Мне вот на моем сайте недавно пришлось премиум покупать, превысил допумтимую нагрузку. А если бы на каждый чих по файлу, да еще вот такие финтифлюшки ненужные, я разорился бы неверное. biggrin.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Dezigo
Цитата (twin @ 9.10.2015 - 09:27)
Dezigo
Ну это дело привычки. Мне верблюжий стиль в переменнх не нравится потому что однотипно с методами.


PSR выбор стиля написание переменных оставил на откуп программистов. Главное, чтобы в одном стиле все писали. Если больше привычно camelCase, мне переназвать не сложно. Всё для людей.  :)  К тому же кода всего пара сотен строк.

Я про это и говорю, кто голосует за то что бы использовать один стиль без underscore?
Нужно выбрать одно. :)

Underscore только в константах
const USER_TYPE_COMPANY = 2;

twin
Не нужно голосования. Перепишу. Посмотрел, правда все фреймворки юзают верблюдов.
Раз всем привычнее, против ветра не стоит переть. На работе я буду все равно свой стиль юзать. tongue.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Dezigo
Класс! rolleyes.gif
OleKh
Цитата (twin @ 9.10.2015 - 02:16)
Почитай вот тут, а потом вот тут.

А потом попробуй так:

$obj = new \core\config();


Прочитал. И понял где ошибка. Пусть меня поправят если не так.

Автолоадер ABC фреймворка реализован по такому примеру Example Implementations of PSR-4 - Closure Example , но для фреймворка не подойдет, т.к. рекурсивно не подгружает классы во вложенных директориях.

Надо использовать Example Implementations of PSR-4 - Class Example

Цитата
The following is an example class implementation to handle multiple namespaces:



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.