System modules (both standard and downloaded from Bitrix24 Marketplace) are located in the bitrix/modules system folder. User modules can be located in the folder /local/modules (Third-party developer modules may be located in different folders)]. Such difference allows developers to conveniently organize version control for their development products and maintain continuous updates using the standard update system.
Module's API (classes, logic) are located in the module's subfolder /lib
This folder is optional if your class doesn't have its own methods.
. For example, Main module path can be as follows: bitrix/modules/main/lib. The same folder is used for connecting API when specific rules are satisfied:
Class files must be titled in lower case, with class name equal to file name. For example: /lib/myclass.php.
Files must contain a correct namespace. Example: when module is connected as follows: Loader::includeModule('company.shotname');
the class must have a namespace: namespace Company\Shotname.
Corresponding method must be connected where such module classes are used in the Control Panel.