Closed strayobject closed 7 years ago
@strayobject : gladly, but I need input on which inherited classes got reported - I'm not involved into the community or related development.
I'm not sure if I understood correctly what you need. Below is the list of files (from Phalcon stubs) which contain framework classes that already extend another framework class. (Classes are named exactly the same as the files, namespaces are capitalized paths) Please let me know if you need something else.
./Phalcon/db/adapter/pdo/Mysql.php
./Phalcon/db/adapter/pdo/Postgresql.php
./Phalcon/db/adapter/pdo/Sqlite.php
./Phalcon/db/adapter/Pdo.php
./Phalcon/db/dialect/Mysql.php
./Phalcon/db/dialect/Postgresql.php
./Phalcon/db/dialect/Sqlite.php
./Phalcon/db/Exception.php
./Phalcon/acl/adapter/Memory.php
./Phalcon/acl/Exception.php
./Phalcon/annotations/adapter/Files.php
./Phalcon/annotations/adapter/Apc.php
./Phalcon/annotations/adapter/Memory.php
./Phalcon/annotations/adapter/Xcache.php
./Phalcon/annotations/Exception.php
./Phalcon/Validation.php
./Phalcon/queue/beanstalk/Exception.php
./Phalcon/tag/Exception.php
./Phalcon/http/response/Exception.php
./Phalcon/http/cookie/Exception.php
./Phalcon/http/request/File.php
./Phalcon/http/request/Exception.php
./Phalcon/paginator/adapter/NativeArray.php
./Phalcon/paginator/adapter/QueryBuilder.php
./Phalcon/paginator/adapter/Model.php
./Phalcon/paginator/Exception.php
./Phalcon/forms/element/Submit.php
./Phalcon/forms/element/Check.php
./Phalcon/forms/element/Text.php
./Phalcon/forms/element/Password.php
./Phalcon/forms/element/Select.php
./Phalcon/forms/element/Numeric.php
./Phalcon/forms/element/File.php
./Phalcon/forms/element/Radio.php
./Phalcon/forms/element/Email.php
./Phalcon/forms/element/Hidden.php
./Phalcon/forms/element/TextArea.php
./Phalcon/forms/element/Date.php
./Phalcon/forms/Form.php
./Phalcon/forms/Exception.php
./Phalcon/flash/Session.php
./Phalcon/flash/Direct.php
./Phalcon/flash/Exception.php
./Phalcon/mvc/Controller.php
./Phalcon/mvc/Micro.php
./Phalcon/mvc/application/Exception.php
./Phalcon/mvc/user/Module.php
./Phalcon/mvc/user/Component.php
./Phalcon/mvc/user/Plugin.php
./Phalcon/mvc/collection/behavior/SoftDelete.php
./Phalcon/mvc/collection/behavior/Timestampable.php
./Phalcon/mvc/collection/Exception.php
./Phalcon/mvc/micro/Exception.php
./Phalcon/mvc/Dispatcher.php
./Phalcon/mvc/Collection.php
./Phalcon/mvc/DispatcherInterface.php
./Phalcon/mvc/View.php
./Phalcon/mvc/model/transaction/Exception.php
./Phalcon/mvc/model/transaction/Failed.php
./Phalcon/mvc/model/behavior/SoftDelete.php
./Phalcon/mvc/model/behavior/Timestampable.php
./Phalcon/mvc/model/metadata/Files.php
./Phalcon/mvc/model/metadata/Session.php
./Phalcon/mvc/model/metadata/Apc.php
./Phalcon/mvc/model/metadata/Memcache.php
./Phalcon/mvc/model/metadata/Redis.php
./Phalcon/mvc/model/metadata/Memory.php
./Phalcon/mvc/model/metadata/Libmemcached.php
./Phalcon/mvc/model/metadata/Xcache.php
./Phalcon/mvc/model/resultset/Simple.php
./Phalcon/mvc/model/resultset/Complex.php
./Phalcon/mvc/model/validator/StringLength.php
./Phalcon/mvc/model/validator/Inclusionin.php
./Phalcon/mvc/model/validator/Numericality.php
./Phalcon/mvc/model/validator/PresenceOf.php
./Phalcon/mvc/model/validator/Exclusionin.php
./Phalcon/mvc/model/validator/Ip.php
./Phalcon/mvc/model/validator/Email.php
./Phalcon/mvc/model/validator/Url.php
./Phalcon/mvc/model/validator/Regex.php
./Phalcon/mvc/model/validator/Uniqueness.php
./Phalcon/mvc/model/ValidationFailed.php
./Phalcon/mvc/model/Message.php
./Phalcon/mvc/model/Exception.php
./Phalcon/mvc/dispatcher/Exception.php
./Phalcon/mvc/router/Annotations.php
./Phalcon/mvc/router/Exception.php
./Phalcon/mvc/ViewInterface.php
./Phalcon/mvc/Application.php
./Phalcon/mvc/view/Simple.php
./Phalcon/mvc/view/Engine.php
./Phalcon/mvc/view/engine/Php.php
./Phalcon/mvc/view/engine/volt/Exception.php
./Phalcon/mvc/view/engine/volt/Compiler.php
./Phalcon/mvc/view/engine/Volt.php
./Phalcon/mvc/view/Exception.php
./Phalcon/mvc/Model.php
./Phalcon/mvc/url/Exception.php
./Phalcon/assets/resource/Js.php
./Phalcon/assets/resource/Css.php
./Phalcon/assets/Exception.php
./Phalcon/assets/inline/Js.php
./Phalcon/assets/inline/Css.php
./Phalcon/application/Exception.php
./Phalcon/config/adapter/Php.php
./Phalcon/config/adapter/Yaml.php
./Phalcon/config/adapter/Json.php
./Phalcon/config/adapter/Ini.php
./Phalcon/config/Exception.php
./Phalcon/logger/adapter/File.php
./Phalcon/logger/adapter/Stream.php
./Phalcon/logger/adapter/Firephp.php
./Phalcon/logger/adapter/Syslog.php
./Phalcon/logger/formatter/Line.php
./Phalcon/logger/formatter/Json.php
./Phalcon/logger/formatter/Firephp.php
./Phalcon/logger/formatter/Syslog.php
./Phalcon/logger/Exception.php
./Phalcon/security/Exception.php
./Phalcon/translate/adapter/Gettext.php
./Phalcon/translate/adapter/Csv.php
./Phalcon/translate/adapter/NativeArray.php
./Phalcon/translate/Exception.php
./Phalcon/session/adapter/Files.php
./Phalcon/session/adapter/Memcache.php
./Phalcon/session/adapter/Redis.php
./Phalcon/session/adapter/Libmemcached.php
./Phalcon/session/Exception.php
./Phalcon/validation/CombinedFieldsValidator.php
./Phalcon/validation/validator/StringLength.php
./Phalcon/validation/validator/InclusionIn.php
./Phalcon/validation/validator/Numericality.php
./Phalcon/validation/validator/Between.php
./Phalcon/validation/validator/ExclusionIn.php
./Phalcon/validation/validator/PresenceOf.php
./Phalcon/validation/validator/Alpha.php
./Phalcon/validation/validator/CreditCard.php
./Phalcon/validation/validator/File.php
./Phalcon/validation/validator/Confirmation.php
./Phalcon/validation/validator/Email.php
./Phalcon/validation/validator/Url.php
./Phalcon/validation/validator/Regex.php
./Phalcon/validation/validator/Alnum.php
./Phalcon/validation/validator/Uniqueness.php
./Phalcon/validation/validator/Digit.php
./Phalcon/validation/validator/Identical.php
./Phalcon/validation/validator/Date.php
./Phalcon/validation/Exception.php
./Phalcon/escaper/Exception.php
./Phalcon/cli/Task.php
./Phalcon/cli/Console.php
./Phalcon/cli/Dispatcher.php
./Phalcon/cli/DispatcherInterface.php
./Phalcon/cli/dispatcher/Exception.php
./Phalcon/cli/router/Exception.php
./Phalcon/cli/console/Exception.php
./Phalcon/loader/Exception.php
./Phalcon/image/adapter/Gd.php
./Phalcon/image/adapter/Imagick.php
./Phalcon/image/Exception.php
./Phalcon/debug/Exception.php
./Phalcon/DiInterface.php
./Phalcon/Application.php
./Phalcon/Exception.php
./Phalcon/cache/frontend/Msgpack.php
./Phalcon/cache/frontend/Igbinary.php
./Phalcon/cache/Exception.php
./Phalcon/cache/backend/Apc.php
./Phalcon/cache/backend/Memcache.php
./Phalcon/cache/backend/File.php
./Phalcon/cache/backend/Redis.php
./Phalcon/cache/backend/Mongo.php
./Phalcon/cache/backend/Memory.php
./Phalcon/cache/backend/Libmemcached.php
./Phalcon/cache/backend/Xcache.php
./Phalcon/crypt/Exception.php
./Phalcon/filter/Exception.php
./Phalcon/di/factorydefault/Cli.php
./Phalcon/di/FactoryDefault.php
./Phalcon/di/Exception.php
./Phalcon/events/Exception.php
Almost, I need just a few classes (2-3, except controllers) like here: https://github.com/kalessil/phpinspectionsea/blob/master/src/main/java/com/kalessil/phpStorm/phpInspectionsEA/inspectors/semanticalAnalysis/classes/LongInheritanceChainInspector.java#L25
I see. In this case would it not be better to count only userland inheritance by allowing people to set partial namespaces that are not to be counted or counted as 1 (example would be adding '\Phalcon\' to adjust the count if "extends" matches)?
As for the classes, I would consider the following (although other people might think otherwise):
\\Phalcon\\Forms\\Form
\\Phalcon\\Db\\Adapter\\Pdo
\\Phalcon\\Db\\Adapter\\Pdo\\Mysql
\\Phalcon\\Db\\Adapter\\Pdo\\Postgresql
\\Phalcon\\Db\\Adapter\\Pdo\\Sqlite
\\Phalcon\\Mvc\\View\\Engine\\Volt
\\Phalcon\\Mvc\\View\\Engine\\Php
Great, the list looks good.
Some frameworks are using older PSRs, so namespace fragments there will not work.
I did check the stubs and ended up with adding \Phalcon\Di\Injectable.
Feedback would be appreciated: you can download PhpInspectionsEA.jar from master, in IDE: File - Settings - Plugins and under the plugins list click "Install from disk", point to the file and apply changes.
Let me know if the fix helps please.
Yes this works :) Thank you.
Super, and thank you for reporting!
In Long Inheritance Chain there is a note stating that some framework specific assumptions are made, please add Phalconphp to those assumptions.