Delete page 'Intro to JCB'

Llewellyn
2023-04-02 22:56:51 +00:00
parent 3c05c9498a
commit 7e7a8c0b38

@@ -1,23 +0,0 @@
Note - Press the ctrl key before clicking a link to open it in a new browser tab.
Joomla! Component Builder (hereafter known as JCB) was built for those who know the PHP programming language. If you don't know PHP, there are some great places to learn it. One of the few I would recommend is [Lynda.com](https://www.lynda.com/) and you can go to the website and search for PHP. You will find many courses that should get you on your way. If you don't know CSS, JavaScript, and HTML then you definitely need to go visit this website and ones similar to it and get that knowledge. JCB was not created for those who have no development skills.
I developed JCB for myself as a Joomla! Component developer to easily and quickly get the bulk of the code common to most Joomla! Components so I could focus on the custom code which goes beyond the norm. If you don't have an understanding of the [Joomla! API](https://api.joomla.org/cms-3/namespaces/Joomla.html), you will be at a disadvantage. It's not that difficult to get this knowledge, but you do need to be able to read PHP and build a Joomla! web site. Understanding the [Joomla! API](https://api.joomla.org/cms-3/namespaces/Joomla.html) requires an understanding of [Object Oriented Programming (OOP)](https://docs.joomla.org/Getting_Started_with_Object_Oriented_Programming) and the classes, methods and properties in the Joomla! core. A good way to do this is to [build a Joomla! web site](https://docs.joomla.org/Special:MyLanguage/Portal:Beginners) without any installed extensions. Pay particular attention to the bullet followed by the text "Install Joomla! on your own computer" since a local installation is my preferred method to develop on, and the reasons are explained further down on this page. Then, look at its [directory, files and folders](https://github.com/vdm-io/Joomla-Component-Builder/wiki/4a.-JCB-Demo-Component-Directory,-Folders-and-Files). Become familiar with the many models, views and controllers (MVC) within the directory structure.
For example, open a view and read through the script. If you use NetBeans you can position your cursor within the function name and press control shift. It will go to the source and display where in the Joomla website that function is declared. Open that file by clicking it in the left hand column. Continue this exercise with other controllers, models and views that are interconnected. You will begin to see the way the code connects them with each other in a similar fashion for each MVC group. Look through the class methods to see which ones are being extended. Note how some arent extending any classes and so on. That's how I got to know how things worked in Joomla! and eventually was able to write sophisticated and feature rich components. Most other developers also learn this way.
Developers familiar with lets say the Google API have an advantage with understanding how JCB works. They will immediately see the JCB application is implementing the [Joomla! API](https://api.joomla.org/cms-3/namespaces/Joomla.html) repeatedly. I am not in the habit of reinventing things and as such I'm trying to stay as close to Joomla! coding conventions as possible. As I become aware of better ways to implement it, I would like to enhance what is already written and also employ it in what has not been coded yet. I am open to better ways of doing something already implemented or ideas for code I am in the process of developing. Please communicate that to me. I will gladly do what is necessary to change the code and implement your suggestion.
I have and continue to do the bulk of the work developing JCB. If its not a serious issue with JCB requiring my involvement and instead is an issue within your component builds you must be willing to get your hands dirty. If you built something and it doesn't work you need to debug it. The best way to do this is to build a local sandbox environment as I do. I have PHP, MySQL and Joomla. If I was to open a browser I would type in local followed by VDM as an example. I have a few sites here and they are what we will be working in throughout this manual. One being developed is this Bowler component. Other sites are on the server so I use a small script on my server to change to another site let's say Builder.VDM which is another site thats loading some of the best displays that I'm working on. So, I add an administrator to that, open the backend and log in to run in a sandbox environment. What are the advantages?
Not being exposed to the Internet is one advantage. Those of you that already have a sandbox environment are familiar with all these advantages but for those of you who don't, you can work offline most of the time plus add some things like XDEBUG and other scripts which help you debug your application very easily. Why is online development not a good solution? It is time consuming and difficult to build an online server and expensive; it's much easier and less costly to develop offline. If you don't know how to do that please visit [Lynda.com](https://www.lynda.com/) and look at a course called [Linux for PHP Developers by John Peck](https://www.lynda.com/Linux-tutorials/Linux-PHP-Developers/587676-2.html?srchtrk=index%3a1%0alinktypeid%3a2%0aq%3aUp+and+Running+with+Linux+for+PHP+Developers%0apage%3a1%0as) This is an excellent course to get your own local developing environment set up. I Don't know if this URL is going to be helpful, but [Up and Running with Apache for Linux PHP developers](https://www.edufukunari.com.br/biblioteca/running-linux-php-developers/) which I watched many moons ago has been very helpful to get my initial sandbox set up and ones after that. It will probably be beneficial for you to read also. You'll find you get better as you find better ways, but it's a good place to start. An excellent source for complete installation are the stacks available from [Bitnami](https://bitnami.com/stacks). Look for WAMP (Windows Apache MySQL PHP), LAMP (Linux Apache MySQL PHP) or MAMP (Macintosh, Apache MySQL PHP), depending on what your environment is. Each has a complete guide to installation and other topics. An example is the [WAMP page](https://docs.bitnami.com/installer/infrastructure/wamp/). You will not need to [register](https://bitnami.com/account/sign_up) to download a stack but it is recommended so you can bypass the registration popup with the link allowing you to proceed without registering, especially if you are downloading some of the many stacks Bitnami has to offer. You may also sign in using FaceBook and others like it.
The best place for functions to be functional is offline. If you're going to develop online, please realize there may be security risks, especially when you've compiled an application. It places it in your temporary folder (\tmp), which can be accessed from anywhere. Anyone can access your temporary folder on your server or your website. You can delete the application from there immediately with a button which I'll show you later but it unsafe. The purpose of the application was to create a development environment where you can safely explore all aspects of the environment you have installed. So, I would still suggest you develop offline.
Since JCB is free, please help me to ensure the future of this component by not sharing its training videos online or with anyone else. The only way that I can sustain this development effort is if you don't share these videos. So please, if you'll be so kind not to share these videos with your organization or perhaps a company you own I would greatly appreciate it. I can't stop you from doing that. So, if you do I would encourage you to consider donating. If you start to reap the benefits of the time that this application saves you do likewise so this application can be further developed for the rest of the community and for yourself.
We would also like you to get involved with Joomla Component Builder on [GitHub](https://github.com/vdm-io/Joomla-Component-Builder). If you have issues, requests or anything else, please go to issues and [open a new issue](https://github.com/vdm-io/Joomla-Component-Builder/issues). I will ensure that you can do that If you've got an account, of course, we'll get up and then may at least our discussions you're all logged and it's public and others can see it and we Can also come back as to it and reference?
If you want to make a feature request you can start one in the issues. If it already exists, I'll point it out to you. If training is needed for the feature it will be added to the set of training videos. If this is a new feature request and you need the feature and can't wait you need to communicate with me at this email address. I can send you a link to make a donation and if you need one, an invoice can be sent to you. If a milestone is applicable in the project, the paid feature request can be added to that milestone and will be done before anyone elses.
If you have any questions regarding these points, please let me know. I would be grateful if you keep any questions about the JCB component separate so my response is focused on just the points I've mentioned in this chapter. I'm really looking forward to showing you how everything works in JCB throughout this manual and the videos it accompanies; I hope you feel the same. We'll continue next with .