Answers.Body: <p>Short answer... <strong>no!!!</strong> You don't ever want to make changes to the <code>craft/app</code> folder. Any changes you make in the <code>app</code> folder will be overwritten when you update Craft.</p>
  
  <p>If you need any custom behavior, the correct way to do it is to <strong>write a custom plugin</strong>. Your plugin will be safe outside of the Craft core, and will survive any Craft updates intact.</p>
  
  <p>Read up on the complete documentation for <a href="https://craftcms.com/docs/plugins/introduction">creating a Craft plugin</a>. You can also download the <a href="https://github.com/lindseydiloreto/craft-businesslogic">Business Logic template</a> to see what some basic components look like. Or even better, spin up a custom plugin using the fantastic <a href="http://pluginfactory.io/">Plugin Factory</a>!</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-02-21T04:10:26.770Z
Answers.Text: Some good stuff here. Never saw the Plugin Factory link, seems useful! I personally use the Business Logic template quite a bit. I'd also recommend [Mijingo's course on Craft Development](https://mijingo.com/products/screencasts/craft-plugin-development/). It's somewhat basic but lays a good foundation, something I found the official Craft docs were missing a bit if you're not used to an OOP framework  like Yii or Laravel before.
Answers.UserDisplayName: RitterKnight
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-02-21T04:46:55.833Z
Answers.Text: thanks for your answers!!! before ask this question I had installed some plugin to my demo site to see how it works, the plugin contains Controllers folder,Services folder, Models folder etc.,but most confused me is **where to use or call these services**,in my own plugin or anywhere else?
Answers.UserDisplayName: hengyi cai
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-02-22T15:08:47.493Z
Answers.Text: @hengyicai Considering your original question has been answered, it's probably best that you create new threads for any further questions you may have on plugin development. I'd recommend that you look at the resources Lindsey and RitterKnight linked to first, though – those should be very helpful in getting a grip on all the basic concepts. Good luck!
Answers.UserDisplayName: Mats Mikkel Rummelhoff
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-09T22:21:03.130Z
Answers.Text: Hey @hengyicai, welcome to the Craft CMS Stack Exchange site! Please consider accepting Lindsey's answer if it helped you.
Answers.UserDisplayName: Matt Stein
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-02-21T03:58:17.693Z
Answers.LastActivityDate: 2016-02-21T03:58:17.693Z
Answers.UserDisplayName: Lindsey D
Body: <p>I am new to Craft CMS, now I run a demo site of <a href="https://github.com/pixelandtonic/HappyLager" rel="nofollow">Happy Lager</a>, wanna add a web crawler to fetch some data to my db. I should develop a plugin to complete this feature, but if I need to change the <code>craft/app</code> folder? or how my services in plugin called by my site? call from the <code>craft/app</code>? please help me,thank you!</p>
  
Tags: <plugin-development><craft-features>
Title: When I want to add some features to my Craft site, do I need to modify the files in the craft/app folder?
ThreadText: # When I want to add some features to my Craft site, do I need to modify the files in the craft/app folder?
  
  (Asked by: username_0 on 2016-02-21)
  
  I am new to Craft CMS, now I run a demo site of [Happy Lager](https://github.com/pixelandtonic/HappyLager), wanna add a web crawler to fetch some data to my db. I should develop a plugin to complete this feature, but if I need to change the `craft/app` folder? or how my services in plugin called by my site? call from the `craft/app`? please help me,thank you!
  
  **Tags:** plugin-development, craft-features
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2016-02-21. Score: 6
  
  Short answer... **no!!!** You don't ever want to make changes to the `craft/app` folder. Any changes you make in the `app` folder will be overwritten when you update Craft.
  
  If you need any custom behavior, the correct way to do it is to **write a custom plugin**. Your plugin will be safe outside of the Craft core, and will survive any Craft updates intact.
  
  Read up on the complete documentation for [creating a Craft plugin](https://craftcms.com/docs/plugins/introduction). You can also download the [Business Logic template](https://github.com/lindseydiloreto/craft-businesslogic) to see what some basic components look like. Or even better, spin up a custom plugin using the fantastic [Plugin Factory](http://pluginfactory.io/)!
  
  > **Comments:**
  > **username_2**: Some good stuff here. Never saw the Plugin Factory link, seems useful! I personally use the Business Logic template quite a bit. I'd also recommend [Mijingo's course on Craft Development](https://mijingo.com/products/screencasts/craft-plugin-development/). It's somewhat basic but lays a good foundation, something I found the official Craft docs were missing a bit if you're not used to an OOP framework  like Yii or Laravel before.  
  > **username_0**: thanks for your answers!!! before ask this question I had installed some plugin to my demo site to see how it works, the plugin contains Controllers folder,Services folder, Models folder etc.,but most confused me is **where to use or call these services**,in my own plugin or anywhere else?  
  > **username_3**: @username_0 Considering your original question has been answered, it's probably best that you create new threads for any further questions you may have on plugin development. I'd recommend that you look at the resources username_1 and username_2 linked to first, though – those should be very helpful in getting a grip on all the basic concepts. Good luck!  
  > **username_4**: Hey @username_0, welcome to the Craft CMS Stack Exchange site! Please consider accepting username_1's answer if it helped you.  
  
  ---
  
  